lol.letsmeet.poll.schedule

ken.wzrdz.cool

Schema Diff

+9 -0

From

CID
bafyreiebpnzeuyv...
Indexed At
2026-09-01 20:39 UTC
View this version

To

CID
bafyreig7ymn7s4w...
Indexed At
2026-09-09 20:59 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex AddedVertex { vertex_id: "lol.letsmeet.poll.schedule:body.events" }
  • AddedVertex AddedVertex { vertex_id: "lol.letsmeet.poll.schedule:body.events:items" }
  • AddedEdge AddedEdge { src: "lol.letsmeet.poll.schedule:body", tgt: "lol.letsmeet.poll.schedule:body.events", kind: "prop", name: Some("events") }
  • AddedEdge AddedEdge { src: "lol.letsmeet.poll.schedule:body.events", tgt: "lol.letsmeet.poll.schedule:body.events:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "lol.letsmeet.poll.schedule:body.events:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex { vertex_id: "lol.letsmeet.poll.schedule:body.events" }
  • AddedVertex { vertex_id: "lol.letsmeet.poll.schedule:body.events:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "lol.letsmeet.poll.schedule:body", tgt: "lol.letsmeet.poll.schedule:body.events", kind: "prop", name: Some("events") }
  • Non-breaking: AddedEdge { src: "lol.letsmeet.poll.schedule:body.events", tgt: "lol.letsmeet.poll.schedule:body.events:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "lol.letsmeet.poll.schedule:body.events:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "dayWindow": {
5 5
      "properties": {
6 6
        "end": {
7 7
          "maxLength": 5,
8 8
          "type": "string"
9 9
        },
10 10
        "start": {
11 11
          "maxLength": 5,
12 12
          "type": "string"
13 13
        }
14 14
      },
15 15
      "required": [
16 16
        "start",
17 17
        "end"
18 18
      ],
19 19
      "type": "object"
20 20
    },
21 21
    "interval": {
22 22
      "properties": {
23 23
        "end": {
24 24
          "format": "datetime",
25 25
          "type": "string"
26 26
        },
27 27
        "start": {
28 28
          "format": "datetime",
29 29
          "type": "string"
30 30
        }
31 31
      },
32 32
      "required": [
33 33
        "start",
34 34
        "end"
35 35
      ],
36 36
      "type": "object"
37 37
    },
38 38
    "main": {
39 39
      "description": "An availability poll: date range, daily window, granularity.",
40 40
      "key": "tid",
41 41
      "record": {
42 42
        "properties": {
43 43
          "closesAt": {
44 44
            "format": "datetime",
45 45
            "type": "string"
46 46
          },
47 47
          "createdAt": {
48 48
            "format": "datetime",
49 49
            "type": "string"
50 50
          },
51 51
          "description": {
52 52
            "maxGraphemes": 2000,
53 53
            "maxLength": 8000,
54 54
            "type": "string"
55 55
          },
56 +
          "events": {
57 +
            "description": "The calendar event records filed in the host's repo for the chosen time(s), so a repick or reopen can remove them.",
58 +
            "items": {
59 +
              "ref": "com.atproto.repo.strongRef",
60 +
              "type": "ref"
61 +
            },
62 +
            "maxLength": 8,
63 +
            "type": "array"
64 +
          },
56 65
          "finalized": {
57 66
            "ref": "#interval",
58 67
            "type": "ref"
59 68
          },
60 69
          "status": {
61 70
            "enum": [
62 71
              "active",
63 72
              "closed",
64 73
              "finalized",
65 74
              "cancelled"
66 75
            ],
67 76
            "type": "string"
68 77
          },
69 78
          "time": {
70 79
            "refs": [
71 80
              "#specificDates"
72 81
            ],
73 82
            "type": "union"
74 83
          },
75 84
          "title": {
76 85
            "maxGraphemes": 200,
77 86
            "maxLength": 800,
78 87
            "type": "string"
79 88
          }
80 89
        },
81 90
        "required": [
82 91
          "title",
83 92
          "time",
84 93
          "status",
85 94
          "createdAt"
86 95
        ],
87 96
        "type": "object"
88 97
      },
89 98
      "type": "record"
90 99
    },
91 100
    "specificDates": {
92 101
      "properties": {
93 102
        "dates": {
94 103
          "items": {
95 104
            "type": "string"
96 105
          },
97 106
          "maxLength": 31,
98 107
          "type": "array"
99 108
        },
100 109
        "slotMinutes": {
101 110
          "enum": [
102 111
            10,
103 112
            15,
104 113
            20,
105 114
            30,
106 115
            45,
107 116
            60,
108 117
            90,
109 118
            120
110 119
          ],
111 120
          "type": "integer"
112 121
        },
113 122
        "timezone": {
114 123
          "maxLength": 64,
115 124
          "type": "string"
116 125
        },
117 126
        "window": {
118 127
          "ref": "#dayWindow",
119 128
          "type": "ref"
120 129
        }
121 130
      },
122 131
      "required": [
123 132
        "dates",
124 133
        "window",
125 134
        "slotMinutes",
126 135
        "timezone"
127 136
      ],
128 137
      "type": "object"
129 138
    }
130 139
  },
131 140
  "id": "lol.letsmeet.poll.schedule",
132 141
  "lexicon": 1
133 142
}

Compare Other Versions

Lexicon Garden

@