From
bafyreievyvgw43uisegjeyyccwt5siqou7yoekr4j6rlrnlsics26btn5i
indexed 2026-11-06 01:44 UTC
View this version
To
bafyreicvz4axdd5mx4i5l35whbpp2ieqg52ct3j4vhybdl3qmqvewed7wa
indexed 2026-11-10 17:47 UTC
View this version
Compatibility
breaking 6 breaking changes, 29 non-breaking changes.
Breaking changes (6)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary", src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.hash", kind: "prop", name: Some("hash") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.author", kind: "prop", name: Some("author") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.kind", kind: "prop", name: Some("kind") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.witness", kind: "prop", name: Some("witness") }
- ConstraintTightened ConstraintTightened { vertex_id: "org.cairnsproto.draft.getReading#gap.reason", sort: "knownValues", old_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"belowExport\",\"unreadable\",\"held\"]", new_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"belowExport\",\"unreadable\",\"held\",\"escalated\"]" }
- ConstraintTightened ConstraintTightened { vertex_id: "org.cairnsproto.draft.getReading#siteReading.state", sort: "knownValues", old_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"leading\",\"unreadable\",\"held\"]", new_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"leading\",\"unreadable\",\"held\",\"escalated\"]" }
Non-breaking changes (29)
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#siteReading.children" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#siteReading.children:items" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.hash" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.mimeType" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.url" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#stoneStatus.witnesses" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.author" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.kind" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.verdict" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.witness" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading:output.sources" }
- AddedVertex AddedVertex { vertex_id: "org.cairnsproto.draft.getReading:output.sources:items" }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading", tgt: "org.cairnsproto.draft.getReading#siteReading.children", kind: "prop", name: Some("children") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading.children", tgt: "org.cairnsproto.draft.getReading#siteReading.children:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading.children:items", tgt: "org.cairnsproto.draft.defs#hash", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.mimeType", kind: "prop", name: Some("mimeType") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.url", kind: "prop", name: Some("url") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary.hash", tgt: "org.cairnsproto.draft.defs#hash", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus", tgt: "org.cairnsproto.draft.getReading#stoneStatus.witnesses", kind: "prop", name: Some("witnesses") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus.witnesses", tgt: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items", tgt: "org.cairnsproto.draft.getReading#witnessView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.verdict", kind: "prop", name: Some("verdict") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading#witnessView.witness", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading:output", tgt: "org.cairnsproto.draft.getReading:output.sources", kind: "prop", name: Some("sources") }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading:output.sources", tgt: "org.cairnsproto.draft.getReading:output.sources:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.cairnsproto.draft.getReading:output.sources:items", tgt: "org.cairnsproto.draft.getReading#sourceSummary", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#siteReading.children" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#siteReading.children:items" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.hash" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.mimeType" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary.url" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#stoneStatus.witnesses" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.author" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.kind" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.verdict" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading#witnessView.witness" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading:output.sources" }AddedVertex { vertex_id: "org.cairnsproto.draft.getReading:output.sources:items" }
Constraint changes
- ConstraintTightened ConstraintTightened { vertex_id: "org.cairnsproto.draft.getReading#gap.reason", sort: "knownValues", old_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"belowExport\",\"unreadable\",\"held\"]", new_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"belowExport\",\"unreadable\",\"held\",\"escalated\"]" }
- ConstraintTightened ConstraintTightened { vertex_id: "org.cairnsproto.draft.getReading#siteReading.state", sort: "knownValues", old_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"leading\",\"unreadable\",\"held\"]", new_value: "[\"open\",\"contested\",\"tied\",\"ambiguous\",\"leading\",\"unreadable\",\"held\",\"escalated\"]" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#sourceSummary", src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.hash", kind: "prop", name: Some("hash") }
- Breaking: RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.author", kind: "prop", name: Some("author") }
- Breaking: RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.kind", kind: "prop", name: Some("kind") }
- Breaking: RequiredEdgeAdded { vertex_id: "org.cairnsproto.draft.getReading#witnessView", src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.witness", kind: "prop", name: Some("witness") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading", tgt: "org.cairnsproto.draft.getReading#siteReading.children", kind: "prop", name: Some("children") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading.children", tgt: "org.cairnsproto.draft.getReading#siteReading.children:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#siteReading.children:items", tgt: "org.cairnsproto.draft.defs#hash", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.mimeType", kind: "prop", name: Some("mimeType") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary", tgt: "org.cairnsproto.draft.getReading#sourceSummary.url", kind: "prop", name: Some("url") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#sourceSummary.hash", tgt: "org.cairnsproto.draft.defs#hash", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus", tgt: "org.cairnsproto.draft.getReading#stoneStatus.witnesses", kind: "prop", name: Some("witnesses") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus.witnesses", tgt: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#stoneStatus.witnesses:items", tgt: "org.cairnsproto.draft.getReading#witnessView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#witnessView", tgt: "org.cairnsproto.draft.getReading#witnessView.verdict", kind: "prop", name: Some("verdict") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading#witnessView.witness", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading:output", tgt: "org.cairnsproto.draft.getReading:output.sources", kind: "prop", name: Some("sources") }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading:output.sources", tgt: "org.cairnsproto.draft.getReading:output.sources:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.cairnsproto.draft.getReading:output.sources:items", tgt: "org.cairnsproto.draft.getReading#sourceSummary", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"beacon": {55
"properties": {66
"round": {77
"minimum": 1,88
"type": "integer"99
},1010
"signature": {1111
"maxLength": 96,1212
"minLength": 96,1313
"type": "string"1414
}1515
},1616
"required": [1717
"round",1818
"signature"1919
],2020
"type": "object"2121
},2222
"candidate": {2323
"properties": {2424
"agreePpm": {2525
"minimum": 0,2626
"type": "integer"2727
},2828
"agreeingSponsors": {2929
"minimum": 0,3030
"type": "integer"3131
},3232
"disagreePpm": {3333
"minimum": 0,3434
"type": "integer"3535
},3636
"drawnAgreeing": {3737
"minimum": 0,3838
"type": "integer"3939
},4040
"high": {4141
"description": "High bound of the agreement interval, in ppm.",4242
"maximum": 1000000,4343
"minimum": 0,4444
"type": "integer"4545
},4646
"low": {4747
"description": "Low bound of the agreement interval, in ppm: support for the share of independent reads that agree on this candidate. It is not a measured accuracy.",4848
"maximum": 1000000,4949
"minimum": 0,5050
"type": "integer"5151
},5252
"stones": {5353
"items": {5454
"ref": "com.atproto.repo.strongRef",5555
"type": "ref"5656
},5757
"type": "array"5858
},5959
"value": {6060
"description": "Digest of the canonical value.",6161
"ref": "org.cairnsproto.draft.defs#hash",6262
"type": "ref"6363
},6464
"vouched": {6565
"description": "Present and true when a converted stone naming a transform the project vouches for reads this candidate, so its support rests on the maintainer's vouch, not only on independent reads.",6666
"type": "boolean"6767
}6868
},6969
"required": [7070
"value",7171
"agreeingSponsors",7272
"drawnAgreeing",7373
"agreePpm",7474
"disagreePpm",7575
"low",7676
"high",7777
"stones"7878
],7979
"type": "object"8080
},8181
"export": {8282
"properties": {8383
"export": {8484
"ref": "com.atproto.repo.strongRef",8585
"type": "ref"8686
},8787
"merged": {8888
"ref": "#merge",8989
"type": "ref"9090
}9191
},9292
"required": [9393
"export"9494
],9595
"type": "object"9696
},9797
"gap": {9898
"description": "A site that is not done. A site no stone has reached yet also names its course and the site itself, and a root-course one its source, so a contributor can place the first stone.",9999
"properties": {100100
"course": {101101
"description": "Course id, for a root-course site with no stones.",102102
"maxLength": 128,103103
"type": "string"104104
},105105
"reason": {106106
"knownValues": [107107
"open",108108
"contested",109109
"tied",110110
"ambiguous",111111
"belowExport",112112
"unreadable",113
"held"113
"held",114
"escalated"114115
],115116
"maxLength": 32,116117
"type": "string"117118
},118119
"site": {119120
"ref": "org.cairnsproto.draft.defs#hash",120121
"type": "ref"121122
},122123
"source": {123124
"description": "The source an empty root-course site marks into.",124125
"ref": "org.cairnsproto.draft.defs#hash",125126
"type": "ref"126127
},127128
"value": {128129
"description": "The site itself, for a site no stone has reached: a root course's whole-source site, or a child site a split course opened.",129130
"ref": "org.cairnsproto.draft.defs#site",130131
"type": "ref"131132
}132133
},133134
"required": [134135
"site",135136
"reason"136137
],137138
"type": "object"138139
},139140
"input": {140141
"properties": {141142
"cid": {142143
"format": "cid",143144
"type": "string"144145
},145146
"seenEpoch": {146147
"minimum": 0,147148
"type": "integer"148149
},149150
"uri": {150151
"format": "at-uri",151152
"type": "string"152153
}153154
},154155
"required": [155156
"uri",156157
"cid",157158
"seenEpoch"158159
],159160
"type": "object"160161
},161162
"main": {162163
"description": "The current reading of a project under its policy, with the inputs a client needs to recompute it: every input record's URI, CID and first-seen epoch, and the beacons its draw claims used.",163164
"output": {164165
"encoding": "application/json",165166
"schema": {166167
"properties": {167168
"beacons": {168169
"items": {169170
"ref": "#beacon",170171
"type": "ref"171172
},172173
"type": "array"173174
},174175
"epoch": {175176
"description": "The indexer's current epoch.",176177
"minimum": 0,177178
"type": "integer"178179
},179180
"exports": {180181
"items": {181182
"ref": "#export",182183
"type": "ref"183184
},184185
"type": "array"185186
},186187
"gaps": {187188
"items": {188189
"ref": "#gap",189190
"type": "ref"190191
},191192
"type": "array"192193
},193194
"inputRoot": {194195
"ref": "org.cairnsproto.draft.defs#hash",195196
"type": "ref"196197
},197198
"inputs": {198199
"items": {199200
"ref": "#input",200201
"type": "ref"201202
},202203
"type": "array"203204
},204205
"policy": {205206
"ref": "com.atproto.repo.strongRef",206207
"type": "ref"207208
},208209
"project": {209210
"ref": "com.atproto.repo.strongRef",210211
"type": "ref"211212
},212213
"published": {213214
"description": "The official repo's state, from the latest import result a maintainer published.",214215
"ref": "#published",215216
"type": "ref"216217
},217218
"rejected": {218219
"items": {219220
"ref": "#rejected",220221
"type": "ref"221222
},222223
"type": "array"223224
},224225
"sites": {225226
"items": {226227
"ref": "#siteReading",227228
"type": "ref"228229
},229230
"type": "array"231
},232
"sources": {233
"description": "One entry per source hash the project covers or its stones trace back to that a source record names, so a frontend can show a source by name instead of hash. Join it to a site's or gap's source hash.",234
"items": {235
"ref": "#sourceSummary",236
"type": "ref"237
},238
"type": "array"230239
}231240
},232241
"required": [233242
"project",234243
"policy",235244
"epoch",236245
"inputRoot",237246
"sites",238247
"gaps",239248
"rejected",240249
"inputs",241250
"beacons"242251
],243252
"type": "object"244253
}245254
},246255
"parameters": {247256
"properties": {248257
"project": {249258
"format": "at-uri",250259
"type": "string"251260
},252261
"site": {253262
"description": "Limit sites to this site key (hex).",254263
"maxLength": 64,255264
"minLength": 64,256265
"type": "string"257266
}258267
},259268
"required": [260269
"project"261270
],262271
"type": "params"263272
},264273
"type": "query"265274
},266275
"merge": {267276
"description": "The first maintainer import result holding every file of the export at the same hash.",268277
"properties": {269278
"commit": {270279
"maxLength": 64,271280
"type": "string"272281
},273282
"importResult": {274283
"ref": "com.atproto.repo.strongRef",275284
"type": "ref"276285
}277286
},278287
"required": [279288
"importResult",280289
"commit"281290
],282291
"type": "object"283292
},284293
"published": {285294
"properties": {286295
"commit": {287296
"maxLength": 64,288297
"type": "string"289298
},290299
"importResult": {291300
"ref": "com.atproto.repo.strongRef",292301
"type": "ref"293302
},294303
"source": {295304
"ref": "com.atproto.repo.strongRef",296305
"type": "ref"297306
},298307
"valuesFetched": {299308
"description": "Whether the indexer has the import result's values blob. Sites carry no comparison until it does.",300309
"type": "boolean"301310
}302311
},303312
"required": [304313
"importResult",305314
"source",306315
"commit",307316
"valuesFetched"308317
],309318
"type": "object"310319
},311320
"rejected": {312321
"properties": {313322
"reason": {314323
"maxLength": 1000,315324
"type": "string"316325
},317326
"uri": {318327
"format": "at-uri",319328
"type": "string"320329
}321330
},322331
"required": [323332
"uri",324333
"reason"325334
],326335
"type": "object"327336
},328337
"siteReading": {329338
"properties": {330339
"candidates": {331340
"items": {332341
"ref": "#candidate",333342
"type": "ref"334343
},335344
"type": "array"336345
},346
"children": {347
"description": "With site: the sites whose base builds on this one, sorted by key.",348
"items": {349
"ref": "org.cairnsproto.draft.defs#hash",350
"type": "ref"351
},352
"type": "array"353
},337354
"course": {338355
"description": "The id of the project course whose schema the site's schema is.",339356
"maxLength": 128,340357
"type": "string"341358
},342359
"error": {343360
"maxLength": 1000,344361
"type": "string"345362
},346363
"parent": {347364
"description": "The site a child site's base builds on.",348365
"ref": "org.cairnsproto.draft.defs#hash",349366
"type": "ref"350367
},351368
"published": {352369
"description": "How the official repo's value compares with the leading candidate.",353370
"knownValues": [354371
"matches",355372
"diverges"356373
],357374
"maxLength": 32,358375
"type": "string"359376
},360377
"schema": {361378
"ref": "org.cairnsproto.draft.defs#hash",362379
"type": "ref"363380
},364381
"site": {365382
"ref": "org.cairnsproto.draft.defs#hash",366383
"type": "ref"367384
},368385
"split": {369386
"description": "Whether the leading value is a split, whose parts are child sites in the same course.",370387
"type": "boolean"371388
},372389
"state": {373390
"knownValues": [374391
"open",375392
"contested",376393
"tied",377394
"ambiguous",378395
"leading",379396
"unreadable",380
"held"397
"held",398
"escalated"381399
],382400
"maxLength": 32,383401
"type": "string"384402
},385403
"stones": {386404
"items": {387405
"ref": "#stoneStatus",388406
"type": "ref"389407
},390408
"type": "array"391409
}392410
},393411
"required": [394412
"site",395413
"schema",396414
"state",397415
"candidates",398416
"stones"399417
],400418
"type": "object"401419
},420
"sourceSummary": {421
"description": "A source's MIME type and first URL, from the maintainers' source records before anyone else's, each in URI order. The hash is the identity.",422
"properties": {423
"hash": {424
"ref": "org.cairnsproto.draft.defs#hash",425
"type": "ref"426
},427
"mimeType": {428
"maxLength": 256,429
"type": "string"430
},431
"url": {432
"format": "uri",433
"type": "string"434
}435
},436
"required": [437
"hash"438
],439
"type": "object"440
},402441
"stoneStatus": {403442
"properties": {404443
"author": {405444
"format": "did",406445
"type": "string"407446
},408447
"drawn": {409448
"type": "boolean"410449
},411450
"status": {412451
"knownValues": [413452
"leading",414453
"pebble",415454
"tied",416455
"withdrawn",417456
"attempt",418457
"sealed",419458
"unsponsored",420459
"branched",421460
"unreadable",422461
"hollow",423462
"excluded"424463
],425464
"maxLength": 32,426465
"type": "string"427466
},428467
"stone": {429468
"ref": "com.atproto.repo.strongRef",430469
"type": "ref"470
},471
"witnesses": {472
"description": "With site: witnesses naming the stone.",473
"items": {474
"ref": "#witnessView",475
"type": "ref"476
},477
"type": "array"431478
}432479
},433480
"required": [434481
"stone",435482
"author",436483
"status",437484
"drawn"438485
],439486
"type": "object"487
},488
"witnessView": {489
"properties": {490
"author": {491
"format": "did",492
"type": "string"493
},494
"kind": {495
"knownValues": [496
"checkResult",497
"judgment",498
"recall"499
],500
"maxLength": 32,501
"type": "string"502
},503
"verdict": {504
"description": "A judgment's verdict.",505
"maxLength": 64,506
"type": "string"507
},508
"witness": {509
"ref": "com.atproto.repo.strongRef",510
"type": "ref"511
}512
},513
"required": [514
"witness",515
"author",516
"kind"517
],518
"type": "object"440519
}441520
},442521
"id": "org.cairnsproto.draft.getReading",443522
"lexicon": 1444523
}