dev.knotless.defs

lexicons.knotless.dev

Schema Diff

+19 -0

From

CID
bafyreicsqa7c5cw...
Indexed At
2026-10-28 21:21 UTC
View this version

To

CID
bafyreih3zkw5oxw...
Indexed At
2026-10-28 23:15 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 2 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image.image" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "dev.knotless.defs#image" }
  • AddedVertex { vertex_id: "dev.knotless.defs#image.image" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "actorView": {
5 5
      "description": "An account, as an appview shows it beside what it did.",
6 6
      "properties": {
7 7
        "avatar": {
8 8
          "description": "The account's picture, as in dev.knotless.getProfile#profileView.",
9 9
          "format": "uri",
10 10
          "type": "string"
11 11
        },
12 12
        "did": {
13 13
          "format": "did",
14 14
          "type": "string"
15 15
        },
16 16
        "handle": {
17 17
          "description": "The handle the account claims, when it resolves back to it; else the DID.",
18 18
          "type": "string"
19 19
        }
20 20
      },
21 21
      "required": [
22 22
        "did",
23 23
        "handle"
24 24
      ],
25 25
      "type": "object"
26 26
    },
27 27
    "actorViewerState": {
28 28
      "description": "What the account asking a query has to do with an account.",
29 29
      "properties": {
30 30
        "blocking": {
31 31
          "description": "Its dev.knotless.block record keeping the account out of all its repositories, if it has one.",
32 32
          "format": "at-uri",
33 33
          "type": "string"
34 34
        },
35 35
        "following": {
36 36
          "description": "Its dev.knotless.follow record naming the account, if it follows it.",
37 37
          "format": "at-uri",
38 38
          "type": "string"
39 39
        }
40 40
      },
41 41
      "type": "object"
42 42
    },
43 43
    "changesView": {
44 44
      "description": "What a pull brings in: for a merged one, what its merge brought into the base; otherwise what its branch has since it left the base.",
45 45
      "properties": {
46 46
        "commits": {
47 47
          "description": "Oldest first.",
48 48
          "items": {
49 49
            "ref": "#commitView",
50 50
            "type": "ref"
51 51
          },
52 52
          "type": "array"
53 53
        },
54 54
        "files": {
55 55
          "items": {
56 56
            "ref": "#fileDiffView",
57 57
            "type": "ref"
58 58
          },
59 59
          "type": "array"
60 60
        },
61 61
        "repo": {
62 62
          "description": "The repository whose commit pages show its commits.",
63 63
          "ref": "#repoViewBasic",
64 64
          "type": "ref"
65 65
        }
66 66
      },
67 67
      "required": [
68 68
        "repo",
69 69
        "commits",
70 70
        "files"
71 71
      ],
72 72
      "type": "object"
73 73
    },
74 74
    "checkImageView": {
75 75
      "description": "A picture a check made: screenshots of the pages a change moved, say.",
76 76
      "properties": {
77 77
        "alt": {
78 78
          "description": "What it shows.",
79 79
          "type": "string"
80 80
        },
81 81
        "url": {
82 82
          "description": "Where this appview serves it, as a path.",
83 83
          "type": "string"
84 84
        }
85 85
      },
86 86
      "required": [
87 87
        "alt",
88 88
        "url"
89 89
      ],
90 90
      "type": "object"
91 91
    },
92 92
    "checkView": {
93 93
      "description": "The newest run of a workflow, as a runner the repository names in its record reported it.",
94 94
      "properties": {
95 95
        "commit": {
96 96
          "description": "The commit it ran at, in hex.",
97 97
          "type": "string"
98 98
        },
99 99
        "error": {
100 100
          "description": "Why it could not run.",
101 101
          "type": "string"
102 102
        },
103 103
        "finishedAt": {
104 104
          "format": "datetime",
105 105
          "type": "string"
106 106
        },
107 107
        "images": {
108 108
          "description": "The pictures it made to be looked at, in order.",
109 109
          "items": {
110 110
            "ref": "#checkImageView",
111 111
            "type": "ref"
112 112
          },
113 113
          "type": "array"
114 114
        },
115 115
        "repo": {
116 116
          "description": "The repository it is of, whose pages show it.",
117 117
          "ref": "#repoViewBasic",
118 118
          "type": "ref"
119 119
        },
120 120
        "skipped": {
121 121
          "description": "For a `success` that ran nothing, as the change touched none of the paths its workflow names: why.",
122 122
          "type": "string"
123 123
        },
124 124
        "startedAt": {
125 125
          "format": "datetime",
126 126
          "type": "string"
127 127
        },
128 128
        "status": {
129 129
          "description": "`queued` is a run filed and waiting for a job on its runner, no step started yet.",
130 130
          "knownValues": [
131 131
            "queued",
132 132
            "running",
133 133
            "success",
134 134
            "failure",
135 135
            "error",
136 136
            "cancelled"
137 137
          ],
138 138
          "type": "string"
139 139
        },
140 140
        "uri": {
141 141
          "description": "Its dev.knotless.check record.",
142 142
          "format": "at-uri",
143 143
          "type": "string"
144 144
        },
145 145
        "workflow": {
146 146
          "type": "string"
147 147
        }
148 148
      },
149 149
      "required": [
150 150
        "uri",
151 151
        "repo",
152 152
        "workflow",
153 153
        "status",
154 154
        "commit",
155 155
        "startedAt",
156 156
        "images"
157 157
      ],
158 158
      "type": "object"
159 159
    },
160 160
    "commentView": {
161 161
      "description": "Something said on a pull or an issue.",
162 162
      "properties": {
163 163
        "author": {
164 164
          "ref": "#actorView",
165 165
          "type": "ref"
166 166
        },
167 167
        "body": {
168 168
          "description": "What it says, as its author wrote it, in Markdown.",
169 169
          "type": "string"
170 170
        },
171 171
        "createdAt": {
172 172
          "format": "datetime",
173 173
          "type": "string"
174 174
        },
175 175
        "html": {
176 176
          "description": "What it says, its Markdown made into HTML: raw HTML shown as text, and links made relative to the repository.",
177 177
          "type": "string"
178 178
        },
179 179
        "reactions": {
180 180
          "description": "How accounts reacted to it, by content, in the order dev.knotless.defs#reactionContent lists them. Absent when none did.",
181 181
          "items": {
182 182
            "ref": "#reactionCountView",
183 183
            "type": "ref"
184 184
          },
185 185
          "type": "array"
186 186
        },
187 187
        "updatedAt": {
188 188
          "description": "When its author last changed it, if they have.",
189 189
          "format": "datetime",
190 190
          "type": "string"
191 191
        },
192 192
        "uri": {
193 193
          "description": "Its dev.knotless.comment record.",
194 194
          "format": "at-uri",
195 195
          "type": "string"
196 196
        },
197 197
        "verdict": {
198 198
          "description": "For a review, what it found.",
199 199
          "knownValues": [
200 200
            "approve",
201 201
            "changes"
202 202
          ],
203 203
          "type": "string"
204 204
        }
205 205
      },
206 206
      "required": [
207 207
        "author",
208 208
        "createdAt",
209 209
        "html"
210 210
      ],
211 211
      "type": "object"
212 212
    },
213 213
    "commitAuthorView": {
214 214
      "description": "Who wrote a commit or helped to: by the name git gives, and by account when that is one of the repository's people whose address it is.",
215 215
      "properties": {
216 216
        "actor": {
217 217
          "ref": "#actorView",
218 218
          "type": "ref"
219 219
        },
220 220
        "agent": {
221 221
          "description": "The coding agent whose address it is, when it is one the pages know the face of.",
222 222
          "knownValues": [
223 223
            "claude"
224 224
          ],
225 225
          "type": "string"
226 226
        },
227 227
        "name": {
228 228
          "description": "The name git records.",
229 229
          "type": "string"
230 230
        }
231 231
      },
232 232
      "required": [
233 233
        "name"
234 234
      ],
235 235
      "type": "object"
236 236
    },
237 237
    "commitRefView": {
238 238
      "description": "A commit, by its object name.",
239 239
      "properties": {
240 240
        "sha": {
241 241
          "description": "In hex.",
242 242
          "type": "string"
243 243
        }
244 244
      },
245 245
      "required": [
246 246
        "sha"
247 247
      ],
248 248
      "type": "object"
249 249
    },
250 250
    "commitView": {
251 251
      "description": "A commit, with the accounts that wrote it where the repository's pages believe their claims (dev.knotless.emails).",
252 252
      "properties": {
253 253
        "author": {
254 254
          "ref": "#commitAuthorView",
255 255
          "type": "ref"
256 256
        },
257 257
        "coauthors": {
258 258
          "description": "Who its message's `Co-authored-by` trailers name.",
259 259
          "items": {
260 260
            "ref": "#commitAuthorView",
261 261
            "type": "ref"
262 262
          },
263 263
          "type": "array"
264 264
        },
265 265
        "committedAt": {
266 266
          "description": "When it was committed: what history runs in, as its author's date need not.",
267 267
          "format": "datetime",
268 268
          "type": "string"
269 269
        },
270 270
        "committer": {
271 271
          "description": "Who committed it, when someone other than its author did.",
272 272
          "ref": "#commitAuthorView",
273 273
          "type": "ref"
274 274
        },
275 275
        "date": {
276 276
          "description": "When its author made it, which a rebase or a squash keeps.",
277 277
          "format": "datetime",
278 278
          "type": "string"
279 279
        },
280 280
        "message": {
281 281
          "description": "Its message, less the last line naming the pull it merged, if it did.",
282 282
          "type": "string"
283 283
        },
284 284
        "parents": {
285 285
          "items": {
286 286
            "ref": "#commitRefView",
287 287
            "type": "ref"
288 288
          },
289 289
          "type": "array"
290 290
        },
291 291
        "pull": {
292 292
          "description": "The pull its message's last line names, as a squash merge records it, when that is a pull on this repository.",
293 293
          "ref": "#itemViewBasic",
294 294
          "type": "ref"
295 295
        },
296 296
        "sha": {
297 297
          "description": "Its object name, in hex.",
298 298
          "type": "string"
299 299
        }
300 300
      },
301 301
      "required": [
302 302
        "sha",
303 303
        "parents",
304 304
        "author",
305 305
        "coauthors",
306 306
        "date",
307 307
        "message"
308 308
      ],
309 309
      "type": "object"
310 310
    },
311 311
    "diffRowView": {
312 312
      "description": "One row of a file's diff: a hunk header, a note, or a line with its old and new numbers.",
313 313
      "properties": {
314 314
        "kind": {
315 315
          "description": "`h` for a hunk header, `x` for a note, `a` for a line added, `d` for one removed, or empty for context.",
316 316
          "type": "string"
317 317
        },
318 318
        "line": {
319 319
          "description": "Whether it is a line of the file.",
320 320
          "type": "boolean"
321 321
        },
322 322
        "new": {
323 323
          "description": "Its number after.",
324 324
          "minimum": 0,
325 325
          "type": "integer"
326 326
        },
327 327
        "old": {
328 328
          "description": "Its number before.",
329 329
          "minimum": 0,
330 330
          "type": "integer"
331 331
        },
332 332
        "text": {
333 333
          "type": "string"
334 334
        }
335 335
      },
336 336
      "required": [
337 337
        "kind",
338 338
        "line",
339 339
        "text"
340 340
      ],
341 341
      "type": "object"
342 342
    },
343 343
    "fileDiffView": {
344 344
      "description": "One file of a diff, or why its rows are not shown.",
345 345
      "properties": {
346 346
        "added": {
347 347
          "description": "Lines added.",
348 348
          "minimum": 0,
349 349
          "type": "integer"
350 350
        },
351 351
        "hunkCount": {
352 352
          "description": "Of those rows, how many are hunk headers, which a page may draw taller than a line.",
353 353
          "minimum": 0,
354 354
          "type": "integer"
355 355
        },
356 356
        "new": {
357 357
          "description": "Its path after.",
358 358
          "type": "string"
359 359
        },
360 360
        "note": {
361 361
          "description": "Why its rows are not shown, when they are not.",
362 362
          "type": "string"
363 363
        },
364 364
        "old": {
365 365
          "description": "Its path before.",
366 366
          "type": "string"
367 367
        },
368 368
        "ranges": {
369 369
          "description": "The ranges its highlighting paints, encoded as the pages read them.",
370 370
          "type": "string"
371 371
        },
372 372
        "removed": {
373 373
          "description": "Lines removed.",
374 374
          "minimum": 0,
375 375
          "type": "integer"
376 376
        },
377 377
        "rowCount": {
378 378
          "description": "Where its rows are left out but would be shown, as dev.knotless.getThread's filesOnly leaves them, how many there are: the room a page keeps for them until they come.",
379 379
          "minimum": 0,
380 380
          "type": "integer"
381 381
        },
382 382
        "rows": {
383 383
          "items": {
384 384
            "ref": "#diffRowView",
385 385
            "type": "ref"
386 386
          },
387 387
          "type": "array"
388 388
        },
389 389
        "status": {
390 390
          "knownValues": [
391 391
            "added",
392 392
            "deleted",
393 393
            "renamed",
394 394
            "modified"
395 395
          ],
396 396
          "type": "string"
397 397
        }
398 398
      },
399 399
      "required": [
400 400
        "old",
401 401
        "new",
402 402
        "status",
403 403
        "added",
404 404
        "removed",
405 405
        "rows"
406 406
      ],
407 407
      "type": "object"
408 408
    },
409 409
    "followState": {
410 410
      "description": "An account's followers, as following or unfollowing it leaves them.",
411 411
      "properties": {
412 412
        "followersCount": {
413 413
          "description": "How many accounts follow it now.",
414 414
          "minimum": 0,
415 415
          "type": "integer"
416 416
        },
417 417
        "following": {
418 418
          "description": "The asker's dev.knotless.follow record naming it; absent once unfollowed.",
419 419
          "format": "at-uri",
420 420
          "type": "string"
421 421
        }
422 422
      },
423 423
      "required": [
424 424
        "followersCount"
425 425
      ],
426 426
      "type": "object"
427 427
    },
428 +
    "image": {
429 +
      "description": "A picture a pull's, an issue's or a comment's body shows, attached so its author's PDS keeps it. The body links to it on that PDS, as `com.atproto.sync.getBlob` serves it, saying what it shows as Markdown's alt text; readers may show it from elsewhere, as dev.knotless.getAttachment does.",
430 +
      "properties": {
431 +
        "image": {
432 +
          "accept": [
433 +
            "image/png",
434 +
            "image/jpeg",
435 +
            "image/webp",
436 +
            "image/gif"
437 +
          ],
438 +
          "maxSize": 1000000,
439 +
          "type": "blob"
440 +
        }
441 +
      },
442 +
      "required": [
443 +
        "image"
444 +
      ],
445 +
      "type": "object"
446 +
    },
428 447
    "itemView": {
429 448
      "description": "A pull or an issue in a list of them.",
430 449
      "properties": {
431 450
        "author": {
432 451
          "description": "Who opened it.",
433 452
          "ref": "#actorView",
434 453
          "type": "ref"
435 454
        },
436 455
        "comments": {
437 456
          "description": "How many comments are on it, its own body aside.",
438 457
          "minimum": 0,
439 458
          "type": "integer"
440 459
        },
441 460
        "createdAt": {
442 461
          "format": "datetime",
443 462
          "type": "string"
444 463
        },
445 464
        "kind": {
446 465
          "knownValues": [
447 466
            "pull",
448 467
            "issue"
449 468
          ],
450 469
          "type": "string"
451 470
        },
452 471
        "labels": {
453 472
          "description": "The labels it carries, as the repository defines them, in the order it does. Absent when it carries none.",
454 473
          "items": {
455 474
            "ref": "dev.knotless.repo#label",
456 475
            "type": "ref"
457 476
          },
458 477
          "type": "array"
459 478
        },
460 479
        "state": {
461 480
          "description": "A merged pull is merged; a closed one, or an issue, closed.",
462 481
          "knownValues": [
463 482
            "open",
464 483
            "closed",
465 484
            "merged"
466 485
          ],
467 486
          "type": "string"
468 487
        },
469 488
        "title": {
470 489
          "type": "string"
471 490
        },
472 491
        "updatedAt": {
473 492
          "description": "When its author last changed its title or body, if they have.",
474 493
          "format": "datetime",
475 494
          "type": "string"
476 495
        },
477 496
        "uri": {
478 497
          "description": "Its dev.knotless.pull or dev.knotless.issue record.",
479 498
          "format": "at-uri",
480 499
          "type": "string"
481 500
        }
482 501
      },
483 502
      "required": [
484 503
        "uri",
485 504
        "kind",
486 505
        "title",
487 506
        "state",
488 507
        "author",
489 508
        "createdAt",
490 509
        "comments"
491 510
      ],
492 511
      "type": "object"
493 512
    },
494 513
    "itemViewBasic": {
495 514
      "description": "A pull or an issue, by its record and its title.",
496 515
      "properties": {
497 516
        "title": {
498 517
          "type": "string"
499 518
        },
500 519
        "uri": {
501 520
          "description": "Its dev.knotless.pull or dev.knotless.issue record.",
502 521
          "format": "at-uri",
503 522
          "type": "string"
504 523
        }
505 524
      },
506 525
      "required": [
507 526
        "uri",
508 527
        "title"
509 528
      ],
510 529
      "type": "object"
511 530
    },
512 531
    "languageView": {
513 532
      "description": "One language a repository is written in.",
514 533
      "properties": {
515 534
        "bytes": {
516 535
          "minimum": 0,
517 536
          "type": "integer"
518 537
        },
519 538
        "color": {
520 539
          "description": "Its color, as linguist has it.",
521 540
          "type": "string"
522 541
        },
523 542
        "name": {
524 543
          "description": "Its name, or `Other` for the languages each under one percent.",
525 544
          "type": "string"
526 545
        },
527 546
        "permille": {
528 547
          "description": "Its share of all the bytes counted, in tenths of a percent.",
529 548
          "maximum": 1000,
530 549
          "minimum": 0,
531 550
          "type": "integer"
532 551
        }
533 552
      },
534 553
      "required": [
535 554
        "name",
536 555
        "color",
537 556
        "bytes",
538 557
        "permille"
539 558
      ],
540 559
      "type": "object"
541 560
    },
542 561
    "link": {
543 562
      "description": "A link shown on an account's profile or a repository's pages.",
544 563
      "properties": {
545 564
        "title": {
546 565
          "description": "What to call it. Readers fall back to the address's host.",
547 566
          "maxGraphemes": 40,
548 567
          "maxLength": 320,
549 568
          "type": "string"
550 569
        },
551 570
        "url": {
552 571
          "description": "Where it goes: an http or https address.",
553 572
          "format": "uri",
554 573
          "type": "string"
555 574
        }
556 575
      },
557 576
      "required": [
558 577
        "url"
559 578
      ],
560 579
      "type": "object"
561 580
    },
562 581
    "minutesView": {
563 582
      "description": "The minutes a runner the repository names counts for its owner's public repositories, from its dev.knotless.minutes record.",
564 583
      "properties": {
565 584
        "allowance": {
566 585
          "description": "The minutes in 30 days it gives the owner's runs before they go one at a time. Absent when there is no limit.",
567 586
          "minimum": 1,
568 587
          "type": "integer"
569 588
        },
570 589
        "freeing": {
571 590
          "description": "When minutes counted now stop counting, soonest first.",
572 591
          "items": {
573 592
            "ref": "dev.knotless.minutes#freeing",
574 593
            "type": "ref"
575 594
          },
576 595
          "type": "array"
577 596
        },
578 597
        "minutes": {
579 598
          "description": "The minutes steps took in the 30 days up to `updatedAt`.",
580 599
          "minimum": 0,
581 600
          "type": "integer"
582 601
        },
583 602
        "runner": {
584 603
          "description": "The runner's account.",
585 604
          "ref": "#actorView",
586 605
          "type": "ref"
587 606
        },
588 607
        "updatedAt": {
589 608
          "description": "When the runner last counted.",
590 609
          "format": "datetime",
591 610
          "type": "string"
592 611
        }
593 612
      },
594 613
      "required": [
595 614
        "runner",
596 615
        "minutes",
597 616
        "updatedAt"
598 617
      ],
599 618
      "type": "object"
600 619
    },
601 620
    "packageView": {
602 621
      "description": "One package a repository publishes.",
603 622
      "properties": {
604 623
        "image": {
605 624
          "description": "True when its latest version, or its newest when none is latest, is a container image.",
606 625
          "type": "boolean"
607 626
        },
608 627
        "latest": {
609 628
          "description": "Its latest version: the highest with no pre-release part. Absent when it has only pre-releases.",
610 629
          "type": "string"
611 630
        },
612 631
        "name": {
613 632
          "description": "The package's name.",
614 633
          "type": "string"
615 634
        },
616 635
        "releaseCount": {
617 636
          "description": "How many versions of it are published.",
618 637
          "minimum": 0,
619 638
          "type": "integer"
620 639
        }
621 640
      },
622 641
      "required": [
623 642
        "name"
624 643
      ],
625 644
      "type": "object"
626 645
    },
627 646
    "pullHeadView": {
628 647
      "description": "What a pull brings in: a branch of a repository.",
629 648
      "properties": {
630 649
        "branch": {
631 650
          "type": "string"
632 651
        },
633 652
        "repo": {
634 653
          "description": "The repository the branch is on, if the index knows it.",
635 654
          "ref": "#repoViewBasic",
636 655
          "type": "ref"
637 656
        }
638 657
      },
639 658
      "required": [
640 659
        "branch"
641 660
      ],
642 661
      "type": "object"
643 662
    },
644 663
    "queueStateView": {
645 664
      "description": "Where an open pull stands in its target branch's merge queue.",
646 665
      "properties": {
647 666
        "checks": {
648 667
          "description": "While its batch is being checked or landing, the batch's checks; once ejected by checks that failed, those.",
649 668
          "items": {
650 669
            "ref": "#checkView",
651 670
            "type": "ref"
652 671
          },
653 672
          "type": "array"
654 673
        },
655 674
        "createdAt": {
656 675
          "description": "When it was queued or ejected.",
657 676
          "format": "datetime",
658 677
          "type": "string"
659 678
        },
660 679
        "reason": {
661 680
          "description": "Why it was ejected, as the runner said.",
662 681
          "type": "string"
663 682
        },
664 683
        "said": {
665 684
          "description": "Where it stands, in words: `Queued, 3rd of 5`, `In a batch of 4 being checked`, `Landing`, or why it was ejected.",
666 685
          "type": "string"
667 686
        },
668 687
        "state": {
669 688
          "knownValues": [
670 689
            "queued",
671 690
            "ejected"
672 691
          ],
673 692
          "type": "string"
674 693
        }
675 694
      },
676 695
      "required": [
677 696
        "state",
678 697
        "createdAt",
679 698
        "said",
680 699
        "checks"
681 700
      ],
682 701
      "type": "object"
683 702
    },
684 703
    "reactionContent": {
685 704
      "description": "What a reaction says, as GitHub's eight: a thumbs up, a thumbs down, a laugh, a party popper, a confused face, a heart, a rocket and eyes.",
686 705
      "knownValues": [
687 706
        "+1",
688 707
        "-1",
689 708
        "laugh",
690 709
        "hooray",
691 710
        "confused",
692 711
        "heart",
693 712
        "rocket",
694 713
        "eyes"
695 714
      ],
696 715
      "maxLength": 32,
697 716
      "type": "string"
698 717
    },
699 718
    "reactionCountView": {
700 719
      "description": "How many accounts reacted to something with one content.",
701 720
      "properties": {
702 721
        "content": {
703 722
          "ref": "#reactionContent",
704 723
          "type": "ref"
705 724
        },
706 725
        "count": {
707 726
          "description": "How many accounts reacted so, each once.",
708 727
          "minimum": 0,
709 728
          "type": "integer"
710 729
        },
711 730
        "reaction": {
712 731
          "description": "The asker's dev.knotless.reaction record of this content on it, if they reacted so.",
713 732
          "format": "at-uri",
714 733
          "type": "string"
715 734
        }
716 735
      },
717 736
      "required": [
718 737
        "content",
719 738
        "count"
720 739
      ],
721 740
      "type": "object"
722 741
    },
723 742
    "reactionState": {
724 743
      "description": "The reactions to a pull, an issue or a comment.",
725 744
      "properties": {
726 745
        "reactions": {
727 746
          "description": "By content, in the order dev.knotless.defs#reactionContent lists them; a content no account reacted with is left out.",
728 747
          "items": {
729 748
            "ref": "#reactionCountView",
730 749
            "type": "ref"
731 750
          },
732 751
          "type": "array"
733 752
        },
734 753
        "subject": {
735 754
          "description": "The pull, issue or comment.",
736 755
          "format": "at-uri",
737 756
          "type": "string"
738 757
        }
739 758
      },
740 759
      "required": [
741 760
        "subject",
742 761
        "reactions"
743 762
      ],
744 763
      "type": "object"
745 764
    },
746 765
    "releaseFileView": {
747 766
      "description": "One file of a release.",
748 767
      "properties": {
749 768
        "name": {
750 769
          "description": "Its name, as it is downloaded.",
751 770
          "type": "string"
752 771
        },
753 772
        "sha256": {
754 773
          "description": "The lowercase hex SHA-256 of the file, which a reader checks it against.",
755 774
          "type": "string"
756 775
        },
757 776
        "size": {
758 777
          "description": "Bytes in the file.",
759 778
          "minimum": 1,
760 779
          "type": "integer"
761 780
        }
762 781
      },
763 782
      "required": [
764 783
        "name",
765 784
        "size",
766 785
        "sha256"
767 786
      ],
768 787
      "type": "object"
769 788
    },
770 789
    "releaseView": {
771 790
      "description": "One version of a package a repository publishes, from its dev.knotless.release record, with its files and notes.",
772 791
      "properties": {
773 792
        "check": {
774 793
          "description": "The dev.knotless.check of the run that built it, if its record names one.",
775 794
          "format": "at-uri",
776 795
          "type": "string"
777 796
        },
778 797
        "commit": {
779 798
          "description": "The hex object ID of the commit its files were built from, if its record names one.",
780 799
          "type": "string"
781 800
        },
782 801
        "createdAt": {
783 802
          "description": "As its record says.",
784 803
          "format": "datetime",
785 804
          "type": "string"
786 805
        },
787 806
        "files": {
788 807
          "description": "What it publishes, in its record's order.",
789 808
          "items": {
790 809
            "ref": "#releaseFileView",
791 810
            "type": "ref"
792 811
          },
793 812
          "type": "array"
794 813
        },
795 814
        "html": {
796 815
          "description": "`notes` made into HTML, as dev.knotless.getThread's comments are: raw HTML shown as text, and links made relative to the repository.",
797 816
          "type": "string"
798 817
        },
799 818
        "image": {
800 819
          "description": "True when its files are a container image's OCI layout: an `index.json` beside blobs named `sha256-<hex>`, pulled by `docker pull` rather than downloaded.",
801 820
          "type": "boolean"
802 821
        },
803 822
        "latest": {
804 823
          "description": "True for its package's latest version: the highest with no pre-release part.",
805 824
          "type": "boolean"
806 825
        },
807 826
        "notes": {
808 827
          "description": "What changed since the version before, in Markdown, as its record says.",
809 828
          "type": "string"
810 829
        },
811 830
        "package": {
812 831
          "description": "The package's name.",
813 832
          "type": "string"
814 833
        },
815 834
        "uri": {
816 835
          "description": "Its dev.knotless.release record.",
817 836
          "format": "at-uri",
818 837
          "type": "string"
819 838
        },
820 839
        "version": {
821 840
          "description": "Its Semantic Versioning 2.0 version.",
822 841
          "type": "string"
823 842
        }
824 843
      },
825 844
      "required": [
826 845
        "uri",
827 846
        "package",
828 847
        "version",
829 848
        "files",
830 849
        "createdAt"
831 850
      ],
832 851
      "type": "object"
833 852
    },
834 853
    "releaseViewBasic": {
835 854
      "description": "One version of a package a repository publishes, from its dev.knotless.release record: which, and when.",
836 855
      "properties": {
837 856
        "createdAt": {
838 857
          "description": "As its record says.",
839 858
          "format": "datetime",
840 859
          "type": "string"
841 860
        },
842 861
        "image": {
843 862
          "description": "True when its files are a container image's OCI layout, pulled by `docker pull` rather than downloaded.",
844 863
          "type": "boolean"
845 864
        },
846 865
        "latest": {
847 866
          "description": "True for its package's latest version: the highest with no pre-release part.",
848 867
          "type": "boolean"
849 868
        },
850 869
        "package": {
851 870
          "description": "The package's name.",
852 871
          "type": "string"
853 872
        },
854 873
        "uri": {
855 874
          "description": "Its dev.knotless.release record.",
856 875
          "format": "at-uri",
857 876
          "type": "string"
858 877
        },
859 878
        "version": {
860 879
          "description": "Its Semantic Versioning 2.0 version.",
861 880
          "type": "string"
862 881
        }
863 882
      },
864 883
      "required": [
865 884
        "uri",
866 885
        "package",
867 886
        "version",
868 887
        "createdAt"
869 888
      ],
870 889
      "type": "object"
871 890
    },
872 891
    "releasesView": {
873 892
      "description": "What a repository publishes, in brief, for its pages to show under its name.",
874 893
      "properties": {
875 894
        "count": {
876 895
          "description": "How many releases it has published, of all its packages.",
877 896
          "minimum": 0,
878 897
          "type": "integer"
879 898
        },
880 899
        "packages": {
881 900
          "description": "Each package it publishes, by name.",
882 901
          "items": {
883 902
            "ref": "#packageView",
884 903
            "type": "ref"
885 904
          },
886 905
          "type": "array"
887 906
        },
888 907
        "release": {
889 908
          "description": "The release to show for it: the latest of the package named as the repository, else the newest that is its package's latest, or the newest of all when each is a pre-release.",
890 909
          "ref": "#releaseViewBasic",
891 910
          "type": "ref"
892 911
        }
893 912
      },
894 913
      "required": [
895 914
        "count",
896 915
        "release",
897 916
        "packages"
898 917
      ],
899 918
      "type": "object"
900 919
    },
901 920
    "repoMade": {
902 921
      "description": "A repository the pages made: created, forked, renamed or taken up.",
903 922
      "properties": {
904 923
        "name": {
905 924
          "description": "Its name, the record key.",
906 925
          "maxLength": 100,
907 926
          "type": "string"
908 927
        },
909 928
        "uri": {
910 929
          "description": "Its dev.knotless.repo record, by its owner's DID.",
911 930
          "format": "at-uri",
912 931
          "type": "string"
913 932
        }
914 933
      },
915 934
      "required": [
916 935
        "uri",
917 936
        "name"
918 937
      ],
919 938
      "type": "object"
920 939
    },
921 940
    "repoRef": {
922 941
      "description": "A repository, as another record names it. The URI's name is the one the repository had when the record was written; a rename changes it, and a later repository can take it. The owner in the URI and `key` stay the repository's own, and are what a reader matches on.",
923 942
      "properties": {
924 943
        "key": {
925 944
          "description": "The repository's `key`.",
926 945
          "format": "tid",
927 946
          "type": "string"
928 947
        },
929 948
        "uri": {
930 949
          "description": "The dev.knotless.repo record, as it was named when this was written.",
931 950
          "format": "at-uri",
932 951
          "type": "string"
933 952
        }
934 953
      },
935 954
      "required": [
936 955
        "uri",
937 956
        "key"
938 957
      ],
939 958
      "type": "object"
940 959
    },
941 960
    "repoView": {
942 961
      "description": "A repository among others, from its dev.knotless.repo record.",
943 962
      "properties": {
944 963
        "createdAt": {
945 964
          "description": "As its record says.",
946 965
          "format": "datetime",
947 966
          "type": "string"
948 967
        },
949 968
        "description": {
950 969
          "type": "string"
951 970
        },
952 971
        "forkOf": {
953 972
          "description": "The repository it was forked from, if the appview knows it.",
954 973
          "ref": "#repoViewBasic",
955 974
          "type": "ref"
956 975
        },
957 976
        "name": {
958 977
          "description": "The repository's name: its record key.",
959 978
          "type": "string"
960 979
        },
961 980
        "owner": {
962 981
          "ref": "#actorView",
963 982
          "type": "ref"
964 983
        },
965 984
        "private": {
966 985
          "description": "Whether it is private, in a space: listed only to its owner, asking.",
967 986
          "type": "boolean"
968 987
        },
969 988
        "uri": {
970 989
          "description": "Its dev.knotless.repo record, under the name it has now.",
971 990
          "format": "at-uri",
972 991
          "type": "string"
973 992
        }
974 993
      },
975 994
      "required": [
976 995
        "uri",
977 996
        "owner",
978 997
        "name",
979 998
        "createdAt"
980 999
      ],
981 1000
      "type": "object"
982 1001
    },
983 1002
    "repoViewBasic": {
984 1003
      "description": "A repository, under the name it has now.",
985 1004
      "properties": {
986 1005
        "did": {
987 1006
          "description": "The repository's owner.",
988 1007
          "format": "did",
989 1008
          "type": "string"
990 1009
        },
991 1010
        "handle": {
992 1011
          "description": "The owner's handle, as in #actorView.",
993 1012
          "type": "string"
994 1013
        },
995 1014
        "name": {
996 1015
          "description": "The repository's name: its record key.",
997 1016
          "type": "string"
998 1017
        }
999 1018
      },
1000 1019
      "required": [
1001 1020
        "did",
1002 1021
        "handle",
1003 1022
        "name"
1004 1023
      ],
1005 1024
      "type": "object"
1006 1025
    },
1007 1026
    "repoViewDetailed": {
1008 1027
      "description": "A repository, with what its pages show above themselves.",
1009 1028
      "properties": {
1010 1029
        "card": {
1011 1030
          "description": "The path, on this appview, of the picture a link to its pages unfurls into: a new one whenever the picture changes.",
1012 1031
          "type": "string"
1013 1032
        },
1014 1033
        "defaultBranch": {
1015 1034
          "description": "The branch its HEAD names: empty, for a repository never pushed.",
1016 1035
          "type": "string"
1017 1036
        },
1018 1037
        "description": {
1019 1038
          "type": "string"
1020 1039
        },
1021 1040
        "forkOf": {
1022 1041
          "description": "The repository it was forked from, if the appview knows it.",
1023 1042
          "ref": "#repoViewBasic",
1024 1043
          "type": "ref"
1025 1044
        },
1026 1045
        "links": {
1027 1046
          "description": "Links its pages show, in display order, as its record names them: its website first. Only http and https addresses.",
1028 1047
          "items": {
1029 1048
            "ref": "#link",
1030 1049
            "type": "ref"
1031 1050
          },
1032 1051
          "type": "array"
1033 1052
        },
1034 1053
        "name": {
1035 1054
          "description": "The repository's name: its record key.",
1036 1055
          "type": "string"
1037 1056
        },
1038 1057
        "openIssues": {
1039 1058
          "minimum": 0,
1040 1059
          "type": "integer"
1041 1060
        },
1042 1061
        "openPulls": {
1043 1062
          "minimum": 0,
1044 1063
          "type": "integer"
1045 1064
        },
1046 1065
        "owner": {
1047 1066
          "ref": "#actorView",
1048 1067
          "type": "ref"
1049 1068
        },
1050 1069
        "private": {
1051 1070
          "description": "Whether it is private, in a space: shown only to its members, each logged in to this appview.",
1052 1071
          "type": "boolean"
1053 1072
        },
1054 1073
        "releases": {
1055 1074
          "description": "What it publishes, in brief, as the appview has indexed. Absent when it has published nothing, for a private repository, which cannot publish, and from an appview that keeps no index.",
1056 1075
          "ref": "#releasesView",
1057 1076
          "type": "ref"
1058 1077
        },
1059 1078
        "starCount": {
1060 1079
          "description": "How many accounts starred it, as the appview has indexed. Absent for a private repository, which cannot be starred, and from an appview that keeps no index.",
1061 1080
          "minimum": 0,
1062 1081
          "type": "integer"
1063 1082
        },
1064 1083
        "uri": {
1065 1084
          "description": "Its dev.knotless.repo record, under the name it has now.",
1066 1085
          "format": "at-uri",
1067 1086
          "type": "string"
1068 1087
        },
1069 1088
        "viewer": {
1070 1089
          "description": "What the account asking has to do with it; absent when no one asks.",
1071 1090
          "ref": "#repoViewerState",
1072 1091
          "type": "ref"
1073 1092
        }
1074 1093
      },
1075 1094
      "required": [
1076 1095
        "uri",
1077 1096
        "owner",
1078 1097
        "name",
1079 1098
        "defaultBranch",
1080 1099
        "openPulls",
1081 1100
        "openIssues",
1082 1101
        "card"
1083 1102
      ],
1084 1103
      "type": "object"
1085 1104
    },
1086 1105
    "repoViewerState": {
1087 1106
      "description": "What the account asking a query has to do with a repository.",
1088 1107
      "properties": {
1089 1108
        "star": {
1090 1109
          "description": "Its dev.knotless.star record naming the repository, if it starred it.",
1091 1110
          "format": "at-uri",
1092 1111
          "type": "string"
1093 1112
        },
1094 1113
        "transfer": {
1095 1114
          "description": "Where the owner has offered to move the repository, when it is offered to the account asking, which can take it up (dev.knotless.acceptTransfer).",
1096 1115
          "ref": "#repoViewBasic",
1097 1116
          "type": "ref"
1098 1117
        }
1099 1118
      },
1100 1119
      "type": "object"
1101 1120
    },
1102 1121
    "starState": {
1103 1122
      "description": "A repository's stars, as starring or unstarring it leaves them.",
1104 1123
      "properties": {
1105 1124
        "star": {
1106 1125
          "description": "The asker's dev.knotless.star record naming it; absent once unstarred.",
1107 1126
          "format": "at-uri",
1108 1127
          "type": "string"
1109 1128
        },
1110 1129
        "starCount": {
1111 1130
          "description": "How many accounts starred it now.",
1112 1131
          "minimum": 0,
1113 1132
          "type": "integer"
1114 1133
        }
1115 1134
      },
1116 1135
      "required": [
1117 1136
        "starCount"
1118 1137
      ],
1119 1138
      "type": "object"
1120 1139
    }
1121 1140
  },
1122 1141
  "description": "Definitions shared by the knotless lexicons.",
1123 1142
  "id": "dev.knotless.defs",
1124 1143
  "lexicon": 1
1125 1144
}

Compare Other Versions

Lexicon Garden

@