site.mochott.article

tokimeki.blue

Schema Diff

+32 -2

From

CID
bafyreigmpnxog5b...
Indexed At
2026-03-25 13:32 UTC
View this version

To

CID
bafyreia35ft65sr...
Indexed At
2026-10-07 14:08 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 8 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.article#minisiteCategory", src: "site.mochott.article#minisiteCategory", tgt: "site.mochott.article#minisiteCategory.slug", kind: "prop", name: Some("slug") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.article#minisiteCategory", src: "site.mochott.article#minisiteCategory", tgt: "site.mochott.article#minisiteCategory.minisite", kind: "prop", name: Some("minisite") }
Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "site.mochott.article#minisiteCategory" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.article#minisiteCategory.minisite" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.article#minisiteCategory.slug" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.article:body.minisiteCategory" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.article:body.topic" }
  • AddedEdge AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.minisiteCategory", kind: "prop", name: Some("minisiteCategory") }
  • AddedEdge AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.topic", kind: "prop", name: Some("topic") }
  • AddedEdge AddedEdge { src: "site.mochott.article:body.minisiteCategory", tgt: "site.mochott.article#minisiteCategory", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "site.mochott.article#minisiteCategory" }
  • AddedVertex { vertex_id: "site.mochott.article#minisiteCategory.minisite" }
  • AddedVertex { vertex_id: "site.mochott.article#minisiteCategory.slug" }
  • AddedVertex { vertex_id: "site.mochott.article:body.minisiteCategory" }
  • AddedVertex { vertex_id: "site.mochott.article:body.topic" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.article#minisiteCategory", src: "site.mochott.article#minisiteCategory", tgt: "site.mochott.article#minisiteCategory.slug", kind: "prop", name: Some("slug") }
  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.article#minisiteCategory", src: "site.mochott.article#minisiteCategory", tgt: "site.mochott.article#minisiteCategory.minisite", kind: "prop", name: Some("minisite") }
  • Non-breaking: AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.minisiteCategory", kind: "prop", name: Some("minisiteCategory") }
  • Non-breaking: AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.topic", kind: "prop", name: Some("topic") }
  • Non-breaking: AddedEdge { src: "site.mochott.article:body.minisiteCategory", tgt: "site.mochott.article#minisiteCategory", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Record representing a single blog article published to a publication.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "blobs": {
10 10
            "description": "Blob references for media embedded within the article content.",
11 11
            "items": {
12 12
              "ref": "site.mochott.defs#blobMetadata",
13 13
              "type": "ref"
14 14
            },
15 15
            "type": "array"
16 16
          },
17 17
          "category": {
18 18
            "description": "Primary category of the article.",
19 19
            "maxLength": 100,
20 20
            "type": "string"
21 21
          },
22 22
          "content": {
23 23
            "description": "Rich text content in TipTap editor JSON format.",
24 24
            "ref": "#tiptapDocument",
25 25
            "type": "ref"
26 26
          },
27 27
          "coverImage": {
28 28
            "accept": [
29 29
              "image/png",
30 30
              "image/jpeg",
31 31
              "image/webp"
32 32
            ],
33 33
            "description": "Cover image displayed at the top of the article and in previews.",
34 34
            "maxSize": 1000000,
35 35
            "type": "blob"
36 36
          },
37 37
          "createdAt": {
38 -
            "description": "Timestamp when the article was created.",
38 +
            "description": "Publication timestamp of the article. Authors may set it to a past date (e.g. when migrating content); it is never later than the record write time.",
39 39
            "format": "datetime",
40 40
            "type": "string"
41 41
          },
42 42
          "description": {
43 43
            "description": "Short summary or excerpt of the article, used for previews and SEO.",
44 44
            "maxGraphemes": 3000,
45 45
            "maxLength": 30000,
46 46
            "type": "string"
47 47
          },
48 +
          "minisiteCategory": {
49 +
            "description": "Category of the article within a minisite. Only meaningful while the article belongs to that minisite and the minisite still defines the slug.",
50 +
            "ref": "#minisiteCategory",
51 +
            "type": "ref"
52 +
          },
48 53
          "path": {
49 54
            "description": "Custom URL path slug for the article. Used to construct human-readable URLs.",
50 55
            "maxLength": 500,
51 56
            "type": "string"
52 57
          },
53 58
          "profile": {
54 59
            "description": "AT URI of the publication profile this article belongs to.",
55 60
            "format": "at-uri",
56 61
            "type": "string"
57 62
          },
58 63
          "tags": {
59 64
            "description": "Tags for categorizing the article.",
60 65
            "items": {
61 66
              "maxGraphemes": 64,
62 67
              "maxLength": 640,
63 68
              "type": "string"
64 69
            },
65 70
            "maxLength": 8,
66 71
            "type": "array"
67 72
          },
68 73
          "textContent": {
69 74
            "description": "Plain text representation of the article content, primarily for search indexing and text-only consumers.",
70 75
            "maxLength": 100000,
71 76
            "type": "string"
72 77
          },
73 78
          "title": {
74 79
            "description": "Title of the article.",
75 80
            "maxGraphemes": 500,
76 81
            "maxLength": 5000,
77 82
            "type": "string"
78 83
          },
84 +
          "topic": {
85 +
            "description": "Slug of the platform writing topic (投稿のお題) this article participates in.",
86 +
            "maxLength": 100,
87 +
            "type": "string"
88 +
          },
79 89
          "updatedAt": {
80 90
            "description": "Timestamp when the article was last updated.",
81 91
            "format": "datetime",
82 92
            "type": "string"
83 93
          }
84 94
        },
85 95
        "required": [
86 96
          "profile",
87 97
          "title",
88 98
          "createdAt"
89 99
        ],
90 100
        "type": "object"
91 101
      },
92 102
      "type": "record"
93 103
    },
104 +
    "minisiteCategory": {
105 +
      "description": "A reference to a category defined in a site.mochott.minisite record.",
106 +
      "properties": {
107 +
        "minisite": {
108 +
          "description": "AT URI of the site.mochott.minisite record that defines the category.",
109 +
          "format": "at-uri",
110 +
          "type": "string"
111 +
        },
112 +
        "slug": {
113 +
          "description": "Slug of a category in that minisite's categories.",
114 +
          "maxLength": 64,
115 +
          "type": "string"
116 +
        }
117 +
      },
118 +
      "required": [
119 +
        "minisite",
120 +
        "slug"
121 +
      ],
122 +
      "type": "object"
123 +
    },
94 124
    "tiptapDocument": {
95 125
      "description": "A TipTap editor document node. Represents a recursive tree structure for rich text content.",
96 126
      "properties": {
97 127
        "attrs": {
98 128
          "description": "Node-specific attributes.",
99 129
          "type": "unknown"
100 130
        },
101 131
        "content": {
102 132
          "description": "Child nodes of this document node.",
103 133
          "items": {
104 134
            "type": "unknown"
105 135
          },
106 136
          "type": "array"
107 137
        },
108 138
        "marks": {
109 139
          "description": "Inline formatting marks applied to this node.",
110 140
          "items": {
111 141
            "type": "unknown"
112 142
          },
113 143
          "type": "array"
114 144
        },
115 145
        "text": {
116 146
          "description": "Text content for text-type nodes.",
117 147
          "type": "string"
118 148
        },
119 149
        "type": {
120 150
          "description": "Node type identifier (e.g. 'doc', 'paragraph', 'heading').",
121 151
          "type": "string"
122 152
        }
123 153
      },
124 154
      "required": [
125 155
        "type"
126 156
      ],
127 157
      "type": "object"
128 158
    }
129 159
  },
130 160
  "description": "A blog article record. Contains rich text content, metadata, and optional media attachments.",
131 161
  "id": "site.mochott.article",
132 162
  "lexicon": 1,
133 -
  "revision": 1
163 +
  "revision": 2
134 164
}

Compare Other Versions

Lexicon Garden

@