ai.newnal.trustsquare.defs

bezalel-newnal.bsky.social

Schema Diff

+44 -0

From

CID
bafyreig6hqcjofl...
Indexed At
2026-09-14 10:06 UTC
View this version

To

CID
bafyreicftpb2r5s...
Indexed At
2026-09-14 12:52 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 9 non-breaking changes.

Breaking Changes (4)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.platform", kind: "prop", name: Some("platform") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.verifiedAt", kind: "prop", name: Some("verifiedAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.method", kind: "prop", name: Some("method") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.handle", kind: "prop", name: Some("handle") }
Non-Breaking Changes (9)
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.handle" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.method" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.platform" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.profileUrl" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.verifiedAt" }
  • AddedVertex AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#videoMeta.channelHandle" }
  • AddedEdge AddedEdge { src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.profileUrl", kind: "prop", name: Some("profileUrl") }
  • AddedEdge AddedEdge { src: "ai.newnal.trustsquare.defs#videoMeta", tgt: "ai.newnal.trustsquare.defs#videoMeta.channelHandle", kind: "prop", name: Some("channelHandle") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.handle" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.method" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.platform" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.profileUrl" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView.verifiedAt" }
  • AddedVertex { vertex_id: "ai.newnal.trustsquare.defs#videoMeta.channelHandle" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.platform", kind: "prop", name: Some("platform") }
  • Breaking: RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.verifiedAt", kind: "prop", name: Some("verifiedAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.method", kind: "prop", name: Some("method") }
  • Breaking: RequiredEdgeAdded { vertex_id: "ai.newnal.trustsquare.defs#socialAccountView", src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.handle", kind: "prop", name: Some("handle") }
  • Non-breaking: AddedEdge { src: "ai.newnal.trustsquare.defs#socialAccountView", tgt: "ai.newnal.trustsquare.defs#socialAccountView.profileUrl", kind: "prop", name: Some("profileUrl") }
  • Non-breaking: AddedEdge { src: "ai.newnal.trustsquare.defs#videoMeta", tgt: "ai.newnal.trustsquare.defs#videoMeta.channelHandle", kind: "prop", name: Some("channelHandle") }
1 1
{
2 2
  "id": "ai.newnal.trustsquare.defs",
3 3
  "defs": {
4 4
    "replyRef": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "root",
8 8
        "parent"
9 9
      ],
10 10
      "properties": {
11 11
        "root": {
12 12
          "ref": "com.atproto.repo.strongRef",
13 13
          "type": "ref"
14 14
        },
15 15
        "parent": {
16 16
          "ref": "com.atproto.repo.strongRef",
17 17
          "type": "ref"
18 18
        }
19 19
      }
20 20
    },
21 21
    "actorView": {
22 22
      "type": "object",
23 23
      "required": [
24 24
        "did",
25 25
        "handle",
26 26
        "displayName",
27 27
        "verificationStatus"
28 28
      ],
29 29
      "properties": {
30 30
        "did": {
31 31
          "type": "string",
32 32
          "format": "did"
33 33
        },
34 34
        "avatar": {
35 35
          "type": "string",
36 36
          "format": "uri"
37 37
        },
38 38
        "gender": {
39 39
          "type": "string"
40 40
        },
41 41
        "handle": {
42 42
          "type": "string",
43 43
          "format": "handle"
44 44
        },
45 45
        "ageBand": {
46 46
          "type": "string"
47 47
        },
48 48
        "realName": {
49 49
          "type": "boolean"
50 50
        },
51 51
        "occupation": {
52 52
          "type": "string"
53 53
        },
54 54
        "affiliation": {
55 55
          "type": "string"
56 56
        },
57 57
        "displayName": {
58 58
          "type": "string"
59 59
        },
60 60
        "verificationStatus": {
61 61
          "type": "string",
62 62
          "knownValues": [
63 63
            "active",
64 64
            "expired",
65 65
            "revoked",
66 66
            "invalid",
67 67
            "none"
68 68
          ]
69 69
        }
70 70
      }
71 71
    },
72 72
    "proofView": {
73 73
      "type": "object",
74 74
      "required": [
75 75
        "uri",
76 76
        "did",
77 77
        "pdsEndpoint",
78 78
        "signingKey",
79 79
        "checks",
80 80
        "checkedAt"
81 81
      ],
82 82
      "properties": {
83 83
        "cid": {
84 84
          "type": "string",
85 85
          "format": "cid",
86 86
          "description": "Record CID from the PDS proof; absent when the record no longer exists."
87 87
        },
88 88
        "did": {
89 89
          "type": "string",
90 90
          "format": "did"
91 91
        },
92 92
        "uri": {
93 93
          "type": "string",
94 94
          "format": "at-uri"
95 95
        },
96 96
        "error": {
97 97
          "type": "string"
98 98
        },
99 99
        "checks": {
100 100
          "ref": "#proofChecks",
101 101
          "type": "ref"
102 102
        },
103 103
        "commit": {
104 104
          "ref": "#commitView",
105 105
          "type": "ref"
106 106
        },
107 107
        "record": {
108 108
          "type": "unknown"
109 109
        },
110 110
        "checkedAt": {
111 111
          "type": "string",
112 112
          "format": "datetime"
113 113
        },
114 114
        "indexedCid": {
115 115
          "type": "string",
116 116
          "format": "cid"
117 117
        },
118 118
        "signingKey": {
119 119
          "type": "string",
120 120
          "description": "did:key of the repository signing key from the DID document."
121 121
        },
122 122
        "pdsEndpoint": {
123 123
          "type": "string",
124 124
          "format": "uri"
125 125
        }
126 126
      }
127 127
    },
128 128
    "syncState": {
129 129
      "type": "string",
130 130
      "description": "AppView knowledge about a record: written to PDS but not yet seen on the network, or confirmed from the firehose.",
131 131
      "knownValues": [
132 132
        "optimistic",
133 133
        "confirmed"
134 134
      ]
135 135
    },
136 136
    "videoMeta": {
137 137
      "type": "object",
138 138
      "required": [
139 139
        "videoId",
140 140
        "url"
141 141
      ],
142 142
      "properties": {
143 143
        "url": {
144 144
          "type": "string",
145 145
          "format": "uri"
146 146
        },
147 147
        "title": {
148 148
          "type": "string"
149 149
        },
150 150
        "videoId": {
151 151
          "type": "string"
152 152
        },
153 153
        "channelId": {
154 154
          "type": "string"
155 155
        },
156 156
        "channelTitle": {
157 157
          "type": "string"
158 158
        },
159 159
        "thumbnailUrl": {
160 160
          "type": "string",
161 161
          "format": "uri"
162 +
        },
163 +
        "channelHandle": {
164 +
          "type": "string",
165 +
          "description": "The channel's YouTube handle including its leading @, when the channel has one."
162 166
        }
163 167
      }
164 168
    },
165 169
    "actorStats": {
166 170
      "type": "object",
167 171
      "required": [
168 172
        "comments",
169 173
        "chatMessages",
170 174
        "squaresCreated",
171 175
        "likesReceived"
172 176
      ],
173 177
      "properties": {
174 178
        "comments": {
175 179
          "type": "integer"
176 180
        },
177 181
        "firstSeenAt": {
178 182
          "type": "string",
179 183
          "format": "datetime"
180 184
        },
181 185
        "chatMessages": {
182 186
          "type": "integer"
183 187
        },
184 188
        "likesReceived": {
185 189
          "type": "integer"
186 190
        },
187 191
        "squaresCreated": {
188 192
          "type": "integer"
189 193
        }
190 194
      }
191 195
    },
192 196
    "commitView": {
193 197
      "type": "object",
194 198
      "required": [
195 199
        "cid",
196 200
        "rev",
197 201
        "sig",
198 202
        "data"
199 203
      ],
200 204
      "properties": {
201 205
        "cid": {
202 206
          "type": "string",
203 207
          "format": "cid"
204 208
        },
205 209
        "rev": {
206 210
          "type": "string",
207 211
          "format": "tid"
208 212
        },
209 213
        "sig": {
210 214
          "type": "string",
211 215
          "description": "Base64 signature bytes."
212 216
        },
213 217
        "data": {
214 218
          "type": "string",
215 219
          "format": "cid",
216 220
          "description": "MST root CID."
217 221
        }
218 222
      }
219 223
    },
220 224
    "disclosure": {
221 225
      "type": "object",
222 226
      "required": [
223 227
        "displayName",
224 228
        "realName"
225 229
      ],
226 230
      "properties": {
227 231
        "gender": {
228 232
          "type": "string",
229 233
          "description": "Attested: as supplied by the identity provider.",
230 234
          "knownValues": [
231 235
            "male",
232 236
            "female",
233 237
            "other"
234 238
          ]
235 239
        },
236 240
        "ageBand": {
237 241
          "type": "string",
238 242
          "description": "Attested: derived from the verified birth date.",
239 243
          "knownValues": [
240 244
            "teens",
241 245
            "20s",
242 246
            "30s",
243 247
            "40s",
244 248
            "50s",
245 249
            "60s",
246 250
            "70plus"
247 251
          ]
248 252
        },
249 253
        "realName": {
250 254
          "type": "boolean",
251 255
          "description": "Whether `displayName` is the full verified name."
252 256
        },
253 257
        "occupation": {
254 258
          "type": "string",
255 259
          "maxLength": 1000,
256 260
          "description": "Self-declared.",
257 261
          "maxGraphemes": 100
258 262
        },
259 263
        "affiliation": {
260 264
          "type": "string",
261 265
          "maxLength": 1000,
262 266
          "description": "Self-declared.",
263 267
          "maxGraphemes": 100
264 268
        },
265 269
        "displayName": {
266 270
          "type": "string",
267 271
          "maxLength": 640,
268 272
          "description": "The verified name when `realName` is true, otherwise its masked form.",
269 273
          "maxGraphemes": 64
270 274
        }
271 275
      },
272 276
      "description": "What the account holder chose to reveal, signed by the verifier. `ageBand` and `gender` are derived from the verified identity and are therefore attested; `occupation` and `affiliation` are self-declared. With nothing disclosed, `displayName` is the masked form of the verified name."
273 277
    },
274 278
    "liveStatus": {
275 279
      "type": "object",
276 280
      "required": [
277 281
        "state"
278 282
      ],
279 283
      "properties": {
280 284
        "state": {
281 285
          "type": "string",
282 286
          "knownValues": [
283 287
            "none",
284 288
            "upcoming",
285 289
            "live",
286 290
            "ended"
287 291
          ]
288 292
        },
289 293
        "endedAt": {
290 294
          "type": "string",
291 295
          "format": "datetime"
292 296
        },
293 297
        "startedAt": {
294 298
          "type": "string",
295 299
          "format": "datetime"
296 300
        }
297 301
      }
298 302
    },
299 303
    "squareView": {
300 304
      "type": "object",
301 305
      "required": [
302 306
        "uri",
303 307
        "cid",
304 308
        "id",
305 309
        "creator",
306 310
        "subject",
307 311
        "mode",
308 312
        "settings",
309 313
        "pinned",
310 314
        "stats",
311 315
        "liveStatus",
312 316
        "createdAt",
313 317
        "indexedAt",
314 318
        "syncState"
315 319
      ],
316 320
      "properties": {
317 321
        "id": {
318 322
          "type": "string",
319 323
          "description": "Short public id used in /s/{id} links."
320 324
        },
321 325
        "cid": {
322 326
          "type": "string",
323 327
          "format": "cid"
324 328
        },
325 329
        "uri": {
326 330
          "type": "string",
327 331
          "format": "at-uri"
328 332
        },
329 333
        "mode": {
330 334
          "type": "string",
331 335
          "knownValues": [
332 336
            "vod",
333 337
            "live"
334 338
          ]
335 339
        },
336 340
        "stats": {
337 341
          "ref": "#squareStats",
338 342
          "type": "ref"
339 343
        },
340 344
        "title": {
341 345
          "type": "string"
342 346
        },
343 347
        "pinned": {
344 348
          "type": "array",
345 349
          "items": {
346 350
            "ref": "com.atproto.repo.strongRef",
347 351
            "type": "ref"
348 352
          }
349 353
        },
350 354
        "creator": {
351 355
          "ref": "#actorView",
352 356
          "type": "ref"
353 357
        },
354 358
        "subject": {
355 359
          "ref": "#videoMeta",
356 360
          "type": "ref"
357 361
        },
358 362
        "settings": {
359 363
          "ref": "#squareSettings",
360 364
          "type": "ref"
361 365
        },
362 366
        "createdAt": {
363 367
          "type": "string",
364 368
          "format": "datetime"
365 369
        },
366 370
        "indexedAt": {
367 371
          "type": "string",
368 372
          "format": "datetime"
369 373
        },
370 374
        "syncState": {
371 375
          "ref": "#syncState",
372 376
          "type": "ref"
373 377
        },
374 378
        "liveStatus": {
375 379
          "ref": "#liveStatus",
376 380
          "type": "ref"
377 381
        },
378 382
        "description": {
379 383
          "type": "string"
380 384
        }
381 385
      }
382 386
    },
383 387
    "threadView": {
384 388
      "type": "object",
385 389
      "required": [
386 390
        "comment",
387 391
        "replies",
388 392
        "hasMoreReplies"
389 393
      ],
390 394
      "properties": {
391 395
        "comment": {
392 396
          "ref": "#commentView",
393 397
          "type": "ref"
394 398
        },
395 399
        "replies": {
396 400
          "type": "array",
397 401
          "items": {
398 402
            "ref": "#commentView",
399 403
            "type": "ref"
400 404
          }
401 405
        },
402 406
        "hasMoreReplies": {
403 407
          "type": "boolean"
404 408
        }
405 409
      }
406 410
    },
407 411
    "commentView": {
408 412
      "type": "object",
409 413
      "required": [
410 414
        "uri",
411 415
        "cid",
412 416
        "author",
413 417
        "squareUri",
414 418
        "text",
415 419
        "likeCount",
416 420
        "dislikeCount",
417 421
        "replyCount",
418 422
        "edited",
419 423
        "hidden",
420 424
        "pinned",
421 425
        "deleted",
422 426
        "createdAt",
423 427
        "indexedAt",
424 428
        "syncState"
425 429
      ],
426 430
      "properties": {
427 431
        "cid": {
428 432
          "type": "string",
429 433
          "format": "cid"
430 434
        },
431 435
        "uri": {
432 436
          "type": "string",
433 437
          "format": "at-uri"
434 438
        },
435 439
        "text": {
436 440
          "type": "string"
437 441
        },
438 442
        "reply": {
439 443
          "ref": "#replyRef",
440 444
          "type": "ref"
441 445
        },
442 446
        "author": {
443 447
          "ref": "#actorView",
444 448
          "type": "ref"
445 449
        },
446 450
        "edited": {
447 451
          "type": "boolean"
448 452
        },
449 453
        "hidden": {
450 454
          "type": "boolean",
451 455
          "description": "Hidden by the Square creator or an operator. Only returned to the creator or the author."
452 456
        },
453 457
        "pinned": {
454 458
          "type": "boolean"
455 459
        },
456 460
        "viewer": {
457 461
          "ref": "#viewerState",
458 462
          "type": "ref"
459 463
        },
460 464
        "deleted": {
461 465
          "type": "boolean",
462 466
          "description": "Tombstone for a comment the author deleted; text is empty."
463 467
        },
464 468
        "editedAt": {
465 469
          "type": "string",
466 470
          "format": "datetime"
467 471
        },
468 472
        "createdAt": {
469 473
          "type": "string",
470 474
          "format": "datetime"
471 475
        },
472 476
        "indexedAt": {
473 477
          "type": "string",
474 478
          "format": "datetime"
475 479
        },
476 480
        "likeCount": {
477 481
          "type": "integer"
478 482
        },
479 483
        "squareUri": {
480 484
          "type": "string",
481 485
          "format": "at-uri"
482 486
        },
483 487
        "syncState": {
484 488
          "ref": "#syncState",
485 489
          "type": "ref"
486 490
        },
487 491
        "replyCount": {
488 492
          "type": "integer"
489 493
        },
490 494
        "trustScore": {
491 495
          "type": "string",
492 496
          "description": "Debug only; present when the AppView runs with ranking debug enabled."
493 497
        },
494 498
        "dislikeCount": {
495 499
          "type": "integer"
496 500
        }
497 501
      }
498 502
    },
499 503
    "historyItem": {
500 504
      "type": "object",
501 505
      "required": [
502 506
        "kind",
503 507
        "square"
504 508
      ],
505 509
      "properties": {
506 510
        "kind": {
507 511
          "type": "string",
508 512
          "knownValues": [
509 513
            "comment",
510 514
            "chat"
511 515
          ]
512 516
        },
513 517
        "square": {
514 518
          "ref": "#squareView",
515 519
          "type": "ref"
516 520
        },
517 521
        "comment": {
518 522
          "ref": "#commentView",
519 523
          "type": "ref"
520 524
        },
521 525
        "chatMessage": {
522 526
          "ref": "#chatMessageView",
523 527
          "type": "ref"
524 528
        }
525 529
      }
526 530
    },
527 531
    "proofChecks": {
528 532
      "type": "object",
529 533
      "required": [
530 534
        "signatureValid",
531 535
        "inclusionValid",
532 536
        "cidMatchesIndex",
533 537
        "didDocFresh"
534 538
      ],
535 539
      "properties": {
536 540
        "didDocFresh": {
537 541
          "type": "boolean"
538 542
        },
539 543
        "inclusionValid": {
540 544
          "type": "boolean"
541 545
        },
542 546
        "signatureValid": {
543 547
          "type": "boolean"
544 548
        },
545 549
        "cidMatchesIndex": {
546 550
          "type": "boolean"
547 551
        }
548 552
      }
549 553
    },
550 554
    "squareStats": {
551 555
      "type": "object",
552 556
      "required": [
553 557
        "comments",
554 558
        "chatMessages",
555 559
        "participants"
556 560
      ],
557 561
      "properties": {
558 562
        "comments": {
559 563
          "type": "integer"
560 564
        },
561 565
        "chatMessages": {
562 566
          "type": "integer"
563 567
        },
564 568
        "participants": {
565 569
          "type": "integer"
566 570
        }
567 571
      }
568 572
    },
569 573
    "viewerState": {
570 574
      "type": "object",
571 575
      "properties": {
572 576
        "reaction": {
573 577
          "type": "string",
574 578
          "knownValues": [
575 579
            "like",
576 580
            "dislike"
577 581
          ]
578 582
        },
579 583
        "reactionUri": {
580 584
          "type": "string",
581 585
          "format": "at-uri"
582 586
        }
583 587
      }
584 588
    },
585 589
    "youtubeVideo": {
586 590
      "type": "object",
587 591
      "required": [
588 592
        "videoId",
589 593
        "url"
590 594
      ],
591 595
      "properties": {
592 596
        "url": {
593 597
          "type": "string",
594 598
          "format": "uri",
595 599
          "description": "Canonical https://www.youtube.com/watch?v=... URL."
596 600
        },
597 601
        "videoId": {
598 602
          "type": "string",
599 603
          "maxLength": 16,
600 604
          "minLength": 11,
601 605
          "description": "YouTube video id."
602 606
        },
603 607
        "channelId": {
604 608
          "type": "string",
605 609
          "maxLength": 64
606 610
        }
607 611
      },
608 612
      "description": "A YouTube video or live stream that a Square is attached to."
609 613
    },
610 614
    "squareSettings": {
611 615
      "type": "object",
612 616
      "properties": {
613 617
        "allowChat": {
614 618
          "type": "boolean",
615 619
          "default": true
616 620
        },
617 621
        "allowComments": {
618 622
          "type": "boolean",
619 623
          "default": true
620 624
        },
621 625
        "requireRealName": {
622 626
          "type": "boolean",
623 627
          "default": false,
624 628
          "description": "When true, only accounts disclosing their full verified name may write in this Square."
625 629
        },
626 630
        "slowModeSeconds": {
627 631
          "type": "integer",
628 632
          "default": 3,
629 633
          "maximum": 600,
630 634
          "minimum": 0
631 635
        }
632 636
      }
633 637
    },
634 638
    "chatMessageView": {
635 639
      "type": "object",
636 640
      "required": [
637 641
        "uri",
638 642
        "cid",
639 643
        "author",
640 644
        "squareUri",
641 645
        "text",
642 646
        "hidden",
643 647
        "createdAt",
644 648
        "indexedAt",
645 649
        "syncState"
646 650
      ],
647 651
      "properties": {
648 652
        "cid": {
649 653
          "type": "string",
650 654
          "format": "cid"
651 655
        },
652 656
        "uri": {
653 657
          "type": "string",
654 658
          "format": "at-uri"
655 659
        },
656 660
        "text": {
657 661
          "type": "string"
658 662
        },
659 663
        "author": {
660 664
          "ref": "#actorView",
661 665
          "type": "ref"
662 666
        },
663 667
        "hidden": {
664 668
          "type": "boolean"
665 669
        },
666 670
        "createdAt": {
667 671
          "type": "string",
668 672
          "format": "datetime"
669 673
        },
670 674
        "indexedAt": {
671 675
          "type": "string",
672 676
          "format": "datetime"
673 677
        },
674 678
        "squareUri": {
675 679
          "type": "string",
676 680
          "format": "at-uri"
677 681
        },
678 682
        "syncState": {
679 683
          "ref": "#syncState",
680 684
          "type": "ref"
681 685
        }
682 686
      }
683 687
    },
684 688
    "actorProfileView": {
685 689
      "type": "object",
686 690
      "required": [
687 691
        "actor",
688 692
        "verification",
689 693
        "stats",
690 694
        "historyVisible"
691 695
      ],
692 696
      "properties": {
693 697
        "actor": {
694 698
          "ref": "#actorView",
695 699
          "type": "ref"
696 700
        },
697 701
        "stats": {
698 702
          "ref": "#actorStats",
699 703
          "type": "ref"
700 704
        },
701 705
        "pdsEndpoint": {
702 706
          "type": "string",
703 707
          "format": "uri"
704 708
        },
705 709
        "verification": {
706 710
          "ref": "#verificationView",
707 711
          "type": "ref"
708 712
        },
709 713
        "historyVisible": {
710 714
          "type": "boolean"
711 715
        }
712 716
      }
713 717
    },
714 718
    "verificationView": {
715 719
      "type": "object",
716 720
      "required": [
717 721
        "status"
718 722
      ],
719 723
      "properties": {
720 724
        "cid": {
721 725
          "type": "string",
722 726
          "format": "cid"
723 727
        },
724 728
        "uri": {
725 729
          "type": "string",
726 730
          "format": "at-uri"
727 731
        },
728 732
        "issuer": {
729 733
          "type": "string",
730 734
          "format": "did"
731 735
        },
732 736
        "status": {
733 737
          "type": "string",
734 738
          "knownValues": [
735 739
            "active",
736 740
            "expired",
737 741
            "revoked",
738 742
            "invalid",
739 743
            "none"
740 744
          ]
741 745
        },
742 746
        "provider": {
743 747
          "type": "string"
744 748
        },
745 749
        "expiresAt": {
746 750
          "type": "string",
747 751
          "format": "datetime"
748 752
        },
749 753
        "disclosure": {
750 754
          "ref": "#disclosure",
751 755
          "type": "ref"
752 756
        },
753 757
        "verifiedAt": {
754 758
          "type": "string",
755 759
          "format": "datetime"
756 760
        },
757 761
        "verificationId": {
758 762
          "type": "string"
759 763
        },
760 764
        "attestationValid": {
761 765
          "type": "boolean"
762 766
        }
763 767
      }
768 +
    },
769 +
    "socialAccountView": {
770 +
      "type": "object",
771 +
      "required": [
772 +
        "platform",
773 +
        "handle",
774 +
        "method",
775 +
        "verifiedAt"
776 +
      ],
777 +
      "properties": {
778 +
        "handle": {
779 +
          "type": "string"
780 +
        },
781 +
        "method": {
782 +
          "type": "string",
783 +
          "knownValues": [
784 +
            "mock",
785 +
            "oauth",
786 +
            "post-proof"
787 +
          ]
788 +
        },
789 +
        "platform": {
790 +
          "type": "string",
791 +
          "knownValues": [
792 +
            "youtube",
793 +
            "facebook",
794 +
            "x",
795 +
            "naver"
796 +
          ]
797 +
        },
798 +
        "profileUrl": {
799 +
          "type": "string",
800 +
          "format": "uri"
801 +
        },
802 +
        "verifiedAt": {
803 +
          "type": "string",
804 +
          "format": "datetime"
805 +
        }
806 +
      },
807 +
      "description": "A social account an actor has linked. `method` is carried through so a reader can tell a mocked claim from an ownership-checked one."
764 808
    }
765 809
  },
766 810
  "$type": "com.atproto.lexicon.schema",
767 811
  "lexicon": 1
768 812
}

Compare Other Versions

Lexicon Garden

@