site.mochott.article

tokimeki.blue

Schema Diff

+27 -2

From

CID
bafyreic6dc5bggs...
Indexed At
2026-08-03 12:09 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, 6 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 (6)
  • 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" }
  • 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.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" }

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.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
          },
79 84
          "topic": {
80 85
            "description": "Slug of the platform writing topic (投稿のお題) this article participates in.",
81 86
            "maxLength": 100,
82 87
            "type": "string"
83 88
          },
84 89
          "updatedAt": {
85 90
            "description": "Timestamp when the article was last updated.",
86 91
            "format": "datetime",
87 92
            "type": "string"
88 93
          }
89 94
        },
90 95
        "required": [
91 96
          "profile",
92 97
          "title",
93 98
          "createdAt"
94 99
        ],
95 100
        "type": "object"
96 101
      },
97 102
      "type": "record"
98 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 +
    },
99 124
    "tiptapDocument": {
100 125
      "description": "A TipTap editor document node. Represents a recursive tree structure for rich text content.",
101 126
      "properties": {
102 127
        "attrs": {
103 128
          "description": "Node-specific attributes.",
104 129
          "type": "unknown"
105 130
        },
106 131
        "content": {
107 132
          "description": "Child nodes of this document node.",
108 133
          "items": {
109 134
            "type": "unknown"
110 135
          },
111 136
          "type": "array"
112 137
        },
113 138
        "marks": {
114 139
          "description": "Inline formatting marks applied to this node.",
115 140
          "items": {
116 141
            "type": "unknown"
117 142
          },
118 143
          "type": "array"
119 144
        },
120 145
        "text": {
121 146
          "description": "Text content for text-type nodes.",
122 147
          "type": "string"
123 148
        },
124 149
        "type": {
125 150
          "description": "Node type identifier (e.g. 'doc', 'paragraph', 'heading').",
126 151
          "type": "string"
127 152
        }
128 153
      },
129 154
      "required": [
130 155
        "type"
131 156
      ],
132 157
      "type": "object"
133 158
    }
134 159
  },
135 160
  "description": "A blog article record. Contains rich text content, metadata, and optional media attachments.",
136 161
  "id": "site.mochott.article",
137 162
  "lexicon": 1,
138 -
  "revision": 1
163 +
  "revision": 2
139 164
}

Compare Other Versions

Lexicon Garden

@