site.mochott.layout

tokimeki.blue

Schema Diff

+140 -6

From

CID
bafyreifuk5eqjz7...
Indexed At
2026-10-17 13:19 UTC
View this version

To

CID
bafyreicqgyjzx2z...
Indexed At
2026-10-17 16:21 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

20 breaking changes, 57 non-breaking changes.

Breaking Changes (20)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.layout#gallery", src: "site.mochott.layout#gallery", tgt: "site.mochott.layout#gallery.images", kind: "prop", name: Some("images") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.layout#hero", src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.heading", kind: "prop", name: Some("heading") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.layout#galleryImage", src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.image", kind: "prop", name: Some("image") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "site.mochott.layout#galleryImage", src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.alt", kind: "prop", name: Some("alt") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant13", kind: "variant", name: Some("#socialLinks") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant14", kind: "variant", name: Some("#record") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant15", kind: "variant", name: Some("#embed") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block:variant13", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block:variant14", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#flowItem.block:variant15", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant10", kind: "variant", name: Some("#record") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant11", kind: "variant", name: Some("#embed") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant8", kind: "variant", name: Some("#socialLinks") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant9", kind: "variant", name: Some("#spacer") }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block:variant10", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block:variant11", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block:variant8", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "site.mochott.layout#tileItem.block:variant9", tgt: "site.mochott.layout#spacer", kind: "ref", name: None }
  • ConstraintTightened ConstraintTightened { vertex_id: "site.mochott.layout#header.links", sort: "default", old_value: "text", new_value: "buttons" }
  • ConstraintTightened ConstraintTightened { vertex_id: "site.mochott.layout#header.links", sort: "knownValues", old_value: "[\"text\",\"icons\",\"buttons\",\"hidden\"]", new_value: "[\"buttons\",\"icons\",\"text\",\"hidden\"]" }
Non-Breaking Changes (57)
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#articleList.sort" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#flowItem.block:variant16" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#flowItem.block:variant17" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#gallery" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#gallery.images" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#gallery.images:items" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#gallery.view" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#galleryImage" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#galleryImage.alt" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#galleryImage.aspectRatio" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#galleryImage.image" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.align" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.buttonLabel" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.buttonUri" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.heading" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.image" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#hero.text" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#record.description" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#record.title" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#tileItem.block:variant12" }
  • AddedVertex AddedVertex { vertex_id: "site.mochott.layout#tileItem.block:variant13" }
  • AddedEdge AddedEdge { src: "site.mochott.layout#articleList", tgt: "site.mochott.layout#articleList.sort", kind: "prop", name: Some("sort") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant13", kind: "variant", name: Some("#gallery") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant14", kind: "variant", name: Some("#hero") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant15", kind: "variant", name: Some("#socialLinks") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant16", kind: "variant", name: Some("#record") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant17", kind: "variant", name: Some("#embed") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block:variant13", tgt: "site.mochott.layout#gallery", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block:variant14", tgt: "site.mochott.layout#hero", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block:variant15", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block:variant16", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#flowItem.block:variant17", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#gallery", tgt: "site.mochott.layout#gallery.view", kind: "prop", name: Some("view") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#gallery.images", tgt: "site.mochott.layout#gallery.images:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#gallery.images:items", tgt: "site.mochott.layout#galleryImage", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.aspectRatio", kind: "prop", name: Some("aspectRatio") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#galleryImage.aspectRatio", tgt: "site.mochott.layout#aspectRatio", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.align", kind: "prop", name: Some("align") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.buttonLabel", kind: "prop", name: Some("buttonLabel") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.buttonUri", kind: "prop", name: Some("buttonUri") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.image", kind: "prop", name: Some("image") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.text", kind: "prop", name: Some("text") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#record", tgt: "site.mochott.layout#record.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#record", tgt: "site.mochott.layout#record.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant10", kind: "variant", name: Some("#socialLinks") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant11", kind: "variant", name: Some("#spacer") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant12", kind: "variant", name: Some("#record") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant13", kind: "variant", name: Some("#embed") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant8", kind: "variant", name: Some("#gallery") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant9", kind: "variant", name: Some("#hero") }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant10", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant11", tgt: "site.mochott.layout#spacer", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant12", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant13", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant8", tgt: "site.mochott.layout#gallery", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "site.mochott.layout#tileItem.block:variant9", tgt: "site.mochott.layout#hero", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "site.mochott.layout#articleList.sort" }
  • AddedVertex { vertex_id: "site.mochott.layout#flowItem.block:variant16" }
  • AddedVertex { vertex_id: "site.mochott.layout#flowItem.block:variant17" }
  • AddedVertex { vertex_id: "site.mochott.layout#gallery" }
  • AddedVertex { vertex_id: "site.mochott.layout#gallery.images" }
  • AddedVertex { vertex_id: "site.mochott.layout#gallery.images:items" }
  • AddedVertex { vertex_id: "site.mochott.layout#gallery.view" }
  • AddedVertex { vertex_id: "site.mochott.layout#galleryImage" }
  • AddedVertex { vertex_id: "site.mochott.layout#galleryImage.alt" }
  • AddedVertex { vertex_id: "site.mochott.layout#galleryImage.aspectRatio" }
  • AddedVertex { vertex_id: "site.mochott.layout#galleryImage.image" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.align" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.buttonLabel" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.buttonUri" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.heading" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.image" }
  • AddedVertex { vertex_id: "site.mochott.layout#hero.text" }
  • AddedVertex { vertex_id: "site.mochott.layout#record.description" }
  • AddedVertex { vertex_id: "site.mochott.layout#record.title" }
  • AddedVertex { vertex_id: "site.mochott.layout#tileItem.block:variant12" }
  • AddedVertex { vertex_id: "site.mochott.layout#tileItem.block:variant13" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "site.mochott.layout#header.links", sort: "default", old_value: "text", new_value: "buttons" }
  • ConstraintTightened ConstraintTightened { vertex_id: "site.mochott.layout#header.links", sort: "knownValues", old_value: "[\"text\",\"icons\",\"buttons\",\"hidden\"]", new_value: "[\"buttons\",\"icons\",\"text\",\"hidden\"]" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.layout#gallery", src: "site.mochott.layout#gallery", tgt: "site.mochott.layout#gallery.images", kind: "prop", name: Some("images") }
  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.layout#hero", src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.heading", kind: "prop", name: Some("heading") }
  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.layout#galleryImage", src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.image", kind: "prop", name: Some("image") }
  • Breaking: RequiredEdgeAdded { vertex_id: "site.mochott.layout#galleryImage", src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.alt", kind: "prop", name: Some("alt") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant13", kind: "variant", name: Some("#socialLinks") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant14", kind: "variant", name: Some("#record") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant15", kind: "variant", name: Some("#embed") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block:variant13", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block:variant14", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#flowItem.block:variant15", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant10", kind: "variant", name: Some("#record") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant11", kind: "variant", name: Some("#embed") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant8", kind: "variant", name: Some("#socialLinks") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant9", kind: "variant", name: Some("#spacer") }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block:variant10", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block:variant11", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block:variant8", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "site.mochott.layout#tileItem.block:variant9", tgt: "site.mochott.layout#spacer", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#articleList", tgt: "site.mochott.layout#articleList.sort", kind: "prop", name: Some("sort") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant13", kind: "variant", name: Some("#gallery") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant14", kind: "variant", name: Some("#hero") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant15", kind: "variant", name: Some("#socialLinks") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant16", kind: "variant", name: Some("#record") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block", tgt: "site.mochott.layout#flowItem.block:variant17", kind: "variant", name: Some("#embed") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block:variant13", tgt: "site.mochott.layout#gallery", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block:variant14", tgt: "site.mochott.layout#hero", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block:variant15", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block:variant16", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#flowItem.block:variant17", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#gallery", tgt: "site.mochott.layout#gallery.view", kind: "prop", name: Some("view") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#gallery.images", tgt: "site.mochott.layout#gallery.images:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#gallery.images:items", tgt: "site.mochott.layout#galleryImage", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#galleryImage", tgt: "site.mochott.layout#galleryImage.aspectRatio", kind: "prop", name: Some("aspectRatio") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#galleryImage.aspectRatio", tgt: "site.mochott.layout#aspectRatio", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.align", kind: "prop", name: Some("align") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.buttonLabel", kind: "prop", name: Some("buttonLabel") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.buttonUri", kind: "prop", name: Some("buttonUri") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.image", kind: "prop", name: Some("image") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#hero", tgt: "site.mochott.layout#hero.text", kind: "prop", name: Some("text") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#record", tgt: "site.mochott.layout#record.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#record", tgt: "site.mochott.layout#record.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant10", kind: "variant", name: Some("#socialLinks") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant11", kind: "variant", name: Some("#spacer") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant12", kind: "variant", name: Some("#record") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant13", kind: "variant", name: Some("#embed") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant8", kind: "variant", name: Some("#gallery") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block", tgt: "site.mochott.layout#tileItem.block:variant9", kind: "variant", name: Some("#hero") }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant10", tgt: "site.mochott.layout#socialLinks", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant11", tgt: "site.mochott.layout#spacer", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant12", tgt: "site.mochott.layout#record", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant13", tgt: "site.mochott.layout#embed", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant8", tgt: "site.mochott.layout#gallery", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "site.mochott.layout#tileItem.block:variant9", tgt: "site.mochott.layout#hero", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "archive": {
5 5
      "description": "Post counts per month, by publish date in Japan time.",
6 6
      "properties": {
7 7
        "view": {
8 8
          "default": "year",
9 9
          "knownValues": [
10 10
            "year",
11 11
            "month"
12 12
          ],
13 13
          "maxLength": 64,
14 14
          "type": "string"
15 15
        },
16 16
        "weekStart": {
17 17
          "default": "monday",
18 18
          "knownValues": [
19 19
            "monday",
20 20
            "sunday"
21 21
          ],
22 22
          "maxLength": 64,
23 23
          "type": "string"
24 24
        }
25 25
      },
26 26
      "type": "object"
27 27
    },
28 28
    "articleList": {
29 29
      "properties": {
30 30
        "filter": {
31 31
          "description": "Absent means all articles of the subject: the author's articles on a profile, the minisite's articles on a minisite.",
32 32
          "refs": [
33 33
            "#tagFilter",
34 34
            "#seriesFilter",
35 35
            "#minisiteFilter"
36 36
          ],
37 37
          "type": "union"
38 38
        },
39 39
        "limit": {
40 40
          "default": 5,
41 41
          "maximum": 20,
42 42
          "minimum": 1,
43 43
          "type": "integer"
44 44
        },
45 +
        "sort": {
46 +
          "default": "recent",
47 +
          "description": "'popular' orders by the number of likes. A popular list shows its own articles only and has no further pages.",
48 +
          "knownValues": [
49 +
            "recent",
50 +
            "popular"
51 +
          ],
52 +
          "maxLength": 64,
53 +
          "type": "string"
54 +
        },
45 55
        "view": {
46 56
          "default": "list",
47 57
          "knownValues": [
48 58
            "card",
49 59
            "list",
50 60
            "magazine"
51 61
          ],
52 62
          "maxLength": 64,
53 63
          "type": "string"
54 64
        }
55 65
      },
56 66
      "type": "object"
57 67
    },
58 68
    "aspectRatio": {
59 69
      "properties": {
60 70
        "height": {
61 71
          "minimum": 1,
62 72
          "type": "integer"
63 73
        },
64 74
        "width": {
65 75
          "minimum": 1,
66 76
          "type": "integer"
67 77
        }
68 78
      },
69 79
      "required": [
70 80
        "width",
71 81
        "height"
72 82
      ],
73 83
      "type": "object"
74 84
    },
75 85
    "background": {
76 86
      "description": "Theme color token. Never a raw color, so every theme keeps its contrast.",
77 87
      "knownValues": [
78 88
        "none",
79 89
        "surface",
80 90
        "accent"
81 91
      ],
82 92
      "maxLength": 64,
83 93
      "type": "string"
84 94
    },
85 95
    "customBlock": {
86 96
      "description": "A site.mochott.block placed on the page, stored the same way as in an article.",
87 97
      "properties": {
88 98
        "blockUri": {
89 99
          "format": "at-uri",
90 100
          "type": "string"
91 101
        },
92 102
        "snapshot": {
93 103
          "description": "Copy of the block definition at the time it was placed, so the page keeps rendering if the block changes or is deleted.",
94 104
          "type": "unknown"
95 105
        },
96 106
        "values": {
97 107
          "description": "Field values keyed by the block's field keys.",
98 108
          "type": "unknown"
99 109
        }
100 110
      },
101 111
      "required": [
102 112
        "blockUri"
103 113
      ],
104 114
      "type": "object"
105 115
    },
106 116
    "embed": {
107 117
      "description": "Embedded media. Only providers on the renderer's allowlist are shown, and the player loads on click.",
108 118
      "properties": {
109 119
        "uri": {
110 120
          "format": "uri",
111 121
          "type": "string"
112 122
        }
113 123
      },
114 124
      "required": [
115 125
        "uri"
116 126
      ],
117 127
      "type": "object"
118 128
    },
119 129
    "flowItem": {
120 130
      "properties": {
121 131
        "background": {
122 132
          "ref": "#background",
123 133
          "type": "ref"
124 134
        },
125 135
        "block": {
126 136
          "refs": [
127 137
            "#text",
128 138
            "#heading",
129 139
            "#articleList",
130 140
            "#otherServices",
131 141
            "#customBlock",
132 142
            "#pinnedArticle",
133 143
            "#archive",
134 144
            "#tagList",
135 145
            "#seriesList",
136 146
            "#minisiteCard",
137 147
            "#linkCard",
138 148
            "#linkButton",
139 149
            "#image",
150 +
            "#gallery",
151 +
            "#hero",
140 152
            "#socialLinks",
141 153
            "#record",
142 154
            "#embed"
143 155
          ],
144 156
          "type": "union"
145 157
        },
146 158
        "hideOnMobile": {
147 159
          "type": "boolean"
148 160
        },
149 161
        "id": {
150 162
          "maxLength": 16,
151 163
          "type": "string"
152 164
        }
153 165
      },
154 166
      "required": [
155 167
        "id",
156 168
        "block"
157 169
      ],
158 170
      "type": "object"
159 171
    },
160 172
    "flowSection": {
161 173
      "description": "One to four columns whose height follows the content. Collapses to one column on mobile.",
162 174
      "properties": {
163 175
        "columns": {
164 176
          "default": 1,
165 177
          "maximum": 4,
166 178
          "minimum": 1,
167 179
          "type": "integer"
168 180
        },
169 181
        "heading": {
170 182
          "maxGraphemes": 100,
171 183
          "maxLength": 300,
172 184
          "type": "string"
173 185
        },
174 186
        "id": {
175 187
          "maxLength": 16,
176 188
          "type": "string"
177 189
        },
178 190
        "items": {
179 191
          "items": {
180 192
            "ref": "#flowItem",
181 193
            "type": "ref"
182 194
          },
183 195
          "maxLength": 30,
184 196
          "type": "array"
185 197
        }
186 198
      },
187 199
      "required": [
188 200
        "id",
189 201
        "items"
190 202
      ],
191 203
      "type": "object"
192 204
    },
205 +
    "gallery": {
206 +
      "description": "Several images shown together.",
207 +
      "properties": {
208 +
        "images": {
209 +
          "items": {
210 +
            "ref": "#galleryImage",
211 +
            "type": "ref"
212 +
          },
213 +
          "maxLength": 20,
214 +
          "minLength": 1,
215 +
          "type": "array"
216 +
        },
217 +
        "view": {
218 +
          "default": "grid",
219 +
          "description": "'grid' lays the images out in a grid, 'scroll' in one row to scroll sideways, 'slides' one at a time. Unknown values fall back to 'grid'.",
220 +
          "knownValues": [
221 +
            "grid",
222 +
            "scroll",
223 +
            "slides"
224 +
          ],
225 +
          "maxLength": 64,
226 +
          "type": "string"
227 +
        }
228 +
      },
229 +
      "required": [
230 +
        "images"
231 +
      ],
232 +
      "type": "object"
233 +
    },
234 +
    "galleryImage": {
235 +
      "properties": {
236 +
        "alt": {
237 +
          "description": "Alternative text. May be empty for a purely decorative image.",
238 +
          "maxGraphemes": 1000,
239 +
          "maxLength": 10000,
240 +
          "type": "string"
241 +
        },
242 +
        "aspectRatio": {
243 +
          "ref": "#aspectRatio",
244 +
          "type": "ref"
245 +
        },
246 +
        "image": {
247 +
          "accept": [
248 +
            "image/png",
249 +
            "image/jpeg",
250 +
            "image/webp",
251 +
            "image/gif"
252 +
          ],
253 +
          "maxSize": 1000000,
254 +
          "type": "blob"
255 +
        }
256 +
      },
257 +
      "required": [
258 +
        "image",
259 +
        "alt"
260 +
      ],
261 +
      "type": "object"
262 +
    },
193 263
    "header": {
194 264
      "description": "How the page header is drawn: the subject's name, description, icon, cover image and links. The header always comes first and is not part of the sections; what it shows is the subject's own record.",
195 265
      "properties": {
196 266
        "links": {
197 -
          "default": "text",
198 -
          "description": "How the subject's social links are shown. Unknown values fall back to 'text'.",
267 +
          "default": "buttons",
268 +
          "description": "How the subject's social links are shown. Unknown values fall back to 'buttons'.",
199 269
          "knownValues": [
200 -
            "text",
201 -
            "icons",
202 270
            "buttons",
271 +
            "icons",
272 +
            "text",
203 273
            "hidden"
204 274
          ],
205 275
          "maxLength": 64,
206 276
          "type": "string"
207 277
        },
208 278
        "showDescription": {
209 279
          "default": true,
210 280
          "type": "boolean"
211 281
        },
212 282
        "style": {
213 283
          "default": "standard",
214 284
          "description": "'standard' puts the icon beside the name, 'center' stacks them centred, 'cover' draws a large cover image with the icon over its edge. Unknown values fall back to 'standard'.",
215 285
          "knownValues": [
216 286
            "standard",
217 287
            "center",
218 288
            "cover"
219 289
          ],
220 290
          "maxLength": 64,
221 291
          "type": "string"
222 292
        }
223 293
      },
224 294
      "type": "object"
225 295
    },
226 296
    "heading": {
227 297
      "properties": {
228 298
        "level": {
229 299
          "default": 2,
230 300
          "maximum": 3,
231 301
          "minimum": 2,
232 302
          "type": "integer"
233 303
        },
234 304
        "text": {
235 305
          "maxGraphemes": 100,
236 306
          "maxLength": 300,
237 307
          "type": "string"
238 308
        }
239 309
      },
240 310
      "required": [
241 311
        "text"
242 312
      ],
243 313
      "type": "object"
244 314
    },
315 +
    "hero": {
316 +
      "description": "A large image with a heading, a short text and a button over it. Without an image the accent colour is drawn instead.",
317 +
      "properties": {
318 +
        "align": {
319 +
          "default": "left",
320 +
          "knownValues": [
321 +
            "left",
322 +
            "center"
323 +
          ],
324 +
          "maxLength": 64,
325 +
          "type": "string"
326 +
        },
327 +
        "buttonLabel": {
328 +
          "description": "Shown only together with buttonUri.",
329 +
          "maxGraphemes": 50,
330 +
          "maxLength": 150,
331 +
          "type": "string"
332 +
        },
333 +
        "buttonUri": {
334 +
          "description": "An http(s) URL. Renderers must ignore any other scheme.",
335 +
          "format": "uri",
336 +
          "maxLength": 2048,
337 +
          "type": "string"
338 +
        },
339 +
        "heading": {
340 +
          "maxGraphemes": 100,
341 +
          "maxLength": 300,
342 +
          "type": "string"
343 +
        },
344 +
        "image": {
345 +
          "accept": [
346 +
            "image/png",
347 +
            "image/jpeg",
348 +
            "image/webp",
349 +
            "image/gif"
350 +
          ],
351 +
          "maxSize": 1000000,
352 +
          "type": "blob"
353 +
        },
354 +
        "text": {
355 +
          "maxGraphemes": 300,
356 +
          "maxLength": 900,
357 +
          "type": "string"
358 +
        }
359 +
      },
360 +
      "required": [
361 +
        "heading"
362 +
      ],
363 +
      "type": "object"
364 +
    },
245 365
    "image": {
246 366
      "properties": {
247 367
        "alt": {
248 368
          "description": "Alternative text. May be empty for a purely decorative image.",
249 369
          "maxGraphemes": 1000,
250 370
          "maxLength": 10000,
251 371
          "type": "string"
252 372
        },
253 373
        "aspectRatio": {
254 374
          "ref": "#aspectRatio",
255 375
          "type": "ref"
256 376
        },
257 377
        "caption": {
258 378
          "maxGraphemes": 300,
259 379
          "maxLength": 3000,
260 380
          "type": "string"
261 381
        },
262 382
        "image": {
263 383
          "accept": [
264 384
            "image/png",
265 385
            "image/jpeg",
266 386
            "image/webp",
267 387
            "image/gif"
268 388
          ],
269 389
          "maxSize": 1000000,
270 390
          "type": "blob"
271 391
        }
272 392
      },
273 393
      "required": [
274 394
        "image",
275 395
        "alt"
276 396
      ],
277 397
      "type": "object"
278 398
    },
279 399
    "linkButton": {
280 400
      "properties": {
281 401
        "label": {
282 402
          "maxGraphemes": 50,
283 403
          "maxLength": 300,
284 404
          "type": "string"
285 405
        },
286 406
        "uri": {
287 407
          "format": "uri",
288 408
          "type": "string"
289 409
        }
290 410
      },
291 411
      "required": [
292 412
        "uri",
293 413
        "label"
294 414
      ],
295 415
      "type": "object"
296 416
    },
297 417
    "linkCard": {
298 418
      "description": "Card for an external page. The OGP fields are a snapshot taken when the card was edited; viewers never trigger a fetch.",
299 419
      "properties": {
300 420
        "description": {
301 421
          "maxGraphemes": 1000,
302 422
          "maxLength": 10000,
303 423
          "type": "string"
304 424
        },
305 425
        "thumb": {
306 426
          "accept": [
307 427
            "image/png",
308 428
            "image/jpeg",
309 429
            "image/webp"
310 430
          ],
311 431
          "maxSize": 1000000,
312 432
          "type": "blob"
313 433
        },
314 434
        "title": {
315 435
          "maxGraphemes": 300,
316 436
          "maxLength": 3000,
317 437
          "type": "string"
318 438
        },
319 439
        "uri": {
320 440
          "format": "uri",
321 441
          "type": "string"
322 442
        }
323 443
      },
324 444
      "required": [
325 445
        "uri"
326 446
      ],
327 447
      "type": "object"
328 448
    },
329 449
    "main": {
330 450
      "description": "Layout of one page. One account has one layout per page: the record key is 'self' for the account's profile home, and equals the minisite record's key for that minisite's home. Other keys are reserved for additional pages. The subject must be a record in the same repository; layouts pointing at another account's records are ignored.",
331 451
      "key": "any",
332 452
      "record": {
333 453
        "properties": {
334 454
          "createdAt": {
335 455
            "format": "datetime",
336 456
            "type": "string"
337 457
          },
338 458
          "header": {
339 459
            "ref": "#header",
340 460
            "type": "ref"
341 461
          },
342 462
          "sections": {
343 463
            "description": "Sections from top to bottom, below the page header.",
344 464
            "items": {
345 465
              "refs": [
346 466
                "#tileSection",
347 467
                "#flowSection"
348 468
              ],
349 469
              "type": "union"
350 470
            },
351 471
            "maxLength": 20,
352 472
            "type": "array"
353 473
          },
354 474
          "subject": {
355 475
            "description": "The page this layout renders: the account's own site.mochott.profile or site.mochott.minisite record.",
356 476
            "format": "at-uri",
357 477
            "type": "string"
358 478
          },
359 479
          "theme": {
360 480
            "ref": "#theme",
361 481
            "type": "ref"
362 482
          },
363 483
          "updatedAt": {
364 484
            "format": "datetime",
365 485
            "type": "string"
366 486
          }
367 487
        },
368 488
        "required": [
369 489
          "subject",
370 490
          "sections",
371 491
          "createdAt"
372 492
        ],
373 493
        "type": "object"
374 494
      },
375 495
      "type": "record"
376 496
    },
377 497
    "minisiteCard": {
378 498
      "properties": {
379 499
        "minisite": {
380 500
          "format": "at-uri",
381 501
          "type": "string"
382 502
        }
383 503
      },
384 504
      "required": [
385 505
        "minisite"
386 506
      ],
387 507
      "type": "object"
388 508
    },
389 509
    "minisiteFilter": {
390 510
      "properties": {
391 511
        "minisite": {
392 512
          "format": "at-uri",
393 513
          "type": "string"
394 514
        }
395 515
      },
396 516
      "required": [
397 517
        "minisite"
398 518
      ],
399 519
      "type": "object"
400 520
    },
401 521
    "otherServices": {
402 522
      "description": "The author's articles on other standard.site services.",
403 523
      "properties": {
404 524
        "limit": {
405 525
          "default": 6,
406 526
          "maximum": 20,
407 527
          "minimum": 1,
408 528
          "type": "integer"
409 529
        }
410 530
      },
411 531
      "type": "object"
412 532
    },
413 533
    "pinnedArticle": {
414 534
      "properties": {
415 535
        "article": {
416 536
          "description": "Always shows the latest version. Skipped when the article is gone or hidden.",
417 537
          "format": "at-uri",
418 538
          "type": "string"
419 539
        }
420 540
      },
421 541
      "required": [
422 542
        "article"
423 543
      ],
424 544
      "type": "object"
425 545
    },
426 546
    "record": {
427 547
      "description": "Card for an AT Protocol record, drawn by a renderer chosen from the record's collection (e.g. sh.tangled.repo). Collections without a renderer are skipped.",
428 548
      "properties": {
549 +
        "description": {
550 +
          "description": "The record's description as it was when placed. Refreshed when the page is published.",
551 +
          "maxGraphemes": 1000,
552 +
          "maxLength": 3000,
553 +
          "type": "string"
554 +
        },
555 +
        "title": {
556 +
          "description": "The record's name as it was when placed (for sh.tangled.repo, its name or record key). Refreshed when the page is published.",
557 +
          "maxGraphemes": 200,
558 +
          "maxLength": 600,
559 +
          "type": "string"
560 +
        },
429 561
        "uri": {
430 562
          "format": "at-uri",
431 563
          "type": "string"
432 564
        }
433 565
      },
434 566
      "required": [
435 567
        "uri"
436 568
      ],
437 569
      "type": "object"
438 570
    },
439 571
    "seriesFilter": {
440 572
      "properties": {
441 573
        "series": {
442 574
          "format": "at-uri",
443 575
          "type": "string"
444 576
        }
445 577
      },
446 578
      "required": [
447 579
        "series"
448 580
      ],
449 581
      "type": "object"
450 582
    },
451 583
    "seriesList": {
452 584
      "properties": {
453 585
        "series": {
454 586
          "description": "Series to show, in order. Absent means all series, newest first.",
455 587
          "items": {
456 588
            "format": "at-uri",
457 589
            "type": "string"
458 590
          },
459 591
          "maxLength": 10,
460 592
          "type": "array"
461 593
        },
462 594
        "view": {
463 595
          "default": "list",
464 596
          "description": "'cover' shows each series with the cover image of its first article.",
465 597
          "knownValues": [
466 598
            "list",
467 599
            "card",
468 600
            "cover"
469 601
          ],
470 602
          "maxLength": 64,
471 603
          "type": "string"
472 604
        }
473 605
      },
474 606
      "type": "object"
475 607
    },
476 608
    "socialLinks": {
477 -
      "description": "The social links of the account's site.mochott.profile record.",
609 +
      "description": "The social links of the account's site.mochott.profile record. Deprecated: the page header shows them; editors no longer offer this block, renderers still draw it.",
478 610
      "properties": {},
479 611
      "type": "object"
480 612
    },
481 613
    "spacer": {
482 614
      "description": "Empty cell used to leave a gap in a tile section.",
483 615
      "properties": {},
484 616
      "type": "object"
485 617
    },
486 618
    "tagFilter": {
487 619
      "properties": {
488 620
        "tag": {
489 621
          "maxGraphemes": 64,
490 622
          "maxLength": 640,
491 623
          "type": "string"
492 624
        }
493 625
      },
494 626
      "required": [
495 627
        "tag"
496 628
      ],
497 629
      "type": "object"
498 630
    },
499 631
    "tagList": {
500 632
      "properties": {
501 633
        "limit": {
502 634
          "default": 10,
503 635
          "maximum": 30,
504 636
          "minimum": 1,
505 637
          "type": "integer"
506 638
        }
507 639
      },
508 640
      "type": "object"
509 641
    },
510 642
    "text": {
511 643
      "properties": {
512 644
        "content": {
513 645
          "ref": "site.mochott.article#tiptapDocument",
514 646
          "type": "ref"
515 647
        }
516 648
      },
517 649
      "required": [
518 650
        "content"
519 651
      ],
520 652
      "type": "object"
521 653
    },
522 654
    "theme": {
523 655
      "properties": {
524 656
        "cardStyle": {
525 657
          "knownValues": [
526 658
            "soft",
527 659
            "outline",
528 660
            "flat"
529 661
          ],
530 662
          "maxLength": 64,
531 663
          "type": "string"
532 664
        },
533 665
        "preset": {
534 666
          "description": "Color and typeface preset. Unknown values fall back to 'standard'.",
535 667
          "knownValues": [
536 668
            "standard",
537 669
            "wakaba",
538 670
            "yoru"
539 671
          ],
540 672
          "maxLength": 64,
541 673
          "type": "string"
542 674
        }
543 675
      },
544 676
      "type": "object"
545 677
    },
546 678
    "tileItem": {
547 679
      "properties": {
548 680
        "background": {
549 681
          "ref": "#background",
550 682
          "type": "ref"
551 683
        },
552 684
        "block": {
553 685
          "refs": [
554 686
            "#pinnedArticle",
555 687
            "#archive",
556 688
            "#tagList",
557 689
            "#seriesList",
558 690
            "#minisiteCard",
559 691
            "#linkCard",
560 692
            "#linkButton",
561 693
            "#image",
694 +
            "#gallery",
695 +
            "#hero",
562 696
            "#socialLinks",
563 697
            "#spacer",
564 698
            "#record",
565 699
            "#embed"
566 700
          ],
567 701
          "type": "union"
568 702
        },
569 703
        "hideOnMobile": {
570 704
          "type": "boolean"
571 705
        },
572 706
        "id": {
573 707
          "maxLength": 16,
574 708
          "type": "string"
575 709
        },
576 710
        "size": {
577 711
          "description": "Width x height in cells. A tile wider than its grid (the section's columns on desktop, 2 on mobile) takes the full width and keeps its shape. A size the block does not support is replaced by the block's first supported size.",
578 712
          "knownValues": [
579 713
            "1x1",
580 714
            "2x1",
581 715
            "1x2",
582 716
            "2x2",
583 717
            "4x1",
584 718
            "4x2"
585 719
          ],
586 720
          "maxLength": 8,
587 721
          "type": "string"
588 722
        }
589 723
      },
590 724
      "required": [
591 725
        "id",
592 726
        "size",
593 727
        "block"
594 728
      ],
595 729
      "type": "object"
596 730
    },
597 731
    "tileSection": {
598 732
      "description": "A grid of square cells, `columns` wide on desktop and 2 on mobile. Items are packed in order. Future section kinds may be added; renderers skip kinds they do not know.",
599 733
      "properties": {
600 734
        "columns": {
601 735
          "default": 4,
602 736
          "maximum": 6,
603 737
          "minimum": 2,
604 738
          "type": "integer"
605 739
        },
606 740
        "heading": {
607 741
          "maxGraphemes": 100,
608 742
          "maxLength": 300,
609 743
          "type": "string"
610 744
        },
611 745
        "id": {
612 746
          "maxLength": 16,
613 747
          "type": "string"
614 748
        },
615 749
        "items": {
616 750
          "items": {
617 751
            "ref": "#tileItem",
618 752
            "type": "ref"
619 753
          },
620 754
          "maxLength": 30,
621 755
          "type": "array"
622 756
        }
623 757
      },
624 758
      "required": [
625 759
        "id",
626 760
        "items"
627 761
      ],
628 762
      "type": "object"
629 763
    }
630 764
  },
631 765
  "description": "A block-based page layout. Renders the home of a mochott profile or of a minisite.",
632 766
  "id": "site.mochott.layout",
633 767
  "lexicon": 1,
634 -
  "revision": 1
768 +
  "revision": 3
635 769
}

Compare Other Versions

Lexicon Garden

@