id.sifa.getProfileView

sifa.id

Schema Diff

+20 -0

From

CID
bafyreib533hsphd...
Indexed At
2026-09-20 10:01 UTC
View this version

To

CID
bafyreihycrrvkzt...
Indexed At
2026-09-25 08:17 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 10 non-breaking changes.

Non-Breaking Changes (10)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.endedAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.positionRkey" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.role" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.startedAt" }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.completedAt", kind: "prop", name: Some("completedAt") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.endedAt", kind: "prop", name: Some("endedAt") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.positionRkey", kind: "prop", name: Some("positionRkey") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.role", kind: "prop", name: Some("role") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.startedAt", kind: "prop", name: Some("startedAt") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.endedAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.positionRkey" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.role" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.startedAt" }

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.completedAt", kind: "prop", name: Some("completedAt") }
  • Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.endedAt", kind: "prop", name: Some("endedAt") }
  • Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.positionRkey", kind: "prop", name: Some("positionRkey") }
  • Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.role", kind: "prop", name: Some("role") }
  • Non-breaking: AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.startedAt", kind: "prop", name: Some("startedAt") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "activeAppView": {
5 5
      "description": "An AT Protocol app the account has recently created records in.",
6 6
      "properties": {
7 7
        "category": {
8 8
          "description": "App category.",
9 9
          "type": "string"
10 10
        },
11 11
        "id": {
12 12
          "description": "App identifier.",
13 13
          "type": "string"
14 14
        },
15 15
        "latestRecordAt": {
16 16
          "description": "Timestamp of the latest record.",
17 17
          "format": "datetime",
18 18
          "type": "string"
19 19
        },
20 20
        "name": {
21 21
          "description": "App display name.",
22 22
          "type": "string"
23 23
        },
24 24
        "recentCount": {
25 25
          "description": "Recent record count.",
26 26
          "type": "integer"
27 27
        }
28 28
      },
29 29
      "required": [
30 30
        "id",
31 31
        "name"
32 32
      ],
33 33
      "type": "object"
34 34
    },
35 35
    "atfundLink": {
36 36
      "description": "A contribution or funding link.",
37 37
      "properties": {
38 38
        "label": {
39 39
          "description": "Optional display label.",
40 40
          "type": "string"
41 41
        },
42 42
        "url": {
43 43
          "description": "Contribution URL.",
44 44
          "format": "uri",
45 45
          "type": "string"
46 46
        }
47 47
      },
48 48
      "required": [
49 49
        "url"
50 50
      ],
51 51
      "type": "object"
52 52
    },
53 53
    "certificationView": {
54 54
      "description": "A certification or license.",
55 55
      "properties": {
56 56
        "agentRef": {
57 57
          "description": "Canonical issuing-authority reference (name plus optional did/entityRef). Mirrors the flat authority/entityRef fields during the migration; the two always agree.",
58 58
          "ref": "id.sifa.defs#agentRef",
59 59
          "type": "ref"
60 60
        },
61 61
        "credentialUrl": {
62 62
          "description": "URL of the credential.",
63 63
          "format": "uri",
64 64
          "type": "string"
65 65
        },
66 66
        "currentCompanyName": {
67 67
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
68 68
          "type": "string"
69 69
        },
70 70
        "entityRef": {
71 71
          "description": "Pointer URI to the resolved issuer entity.",
72 72
          "format": "uri",
73 73
          "type": "string"
74 74
        },
75 75
        "expiryDate": {
76 76
          "description": "Expiry date. Partial date.",
77 77
          "type": "string"
78 78
        },
79 79
        "issueDate": {
80 80
          "description": "Issue date. Partial date.",
81 81
          "type": "string"
82 82
        },
83 83
        "issuingOrg": {
84 84
          "description": "Issuing organization.",
85 85
          "type": "string"
86 86
        },
87 87
        "name": {
88 88
          "description": "Certification name.",
89 89
          "type": "string"
90 90
        },
91 91
        "rkey": {
92 92
          "description": "Record key of the certification record.",
93 93
          "type": "string"
94 94
        }
95 95
      },
96 96
      "required": [
97 97
        "rkey",
98 98
        "name"
99 99
      ],
100 100
      "type": "object"
101 101
    },
102 102
    "coSpeakerView": {
103 103
      "description": "A co-speaker on a presentation delivery.",
104 104
      "properties": {
105 105
        "avatar": {
106 106
          "description": "Avatar URL, when linked.",
107 107
          "format": "uri",
108 108
          "type": "string"
109 109
        },
110 110
        "did": {
111 111
          "description": "DID of the co-speaker, when linked to a Sifa profile.",
112 112
          "format": "did",
113 113
          "type": "string"
114 114
        },
115 115
        "displayName": {
116 116
          "description": "Display name, when linked.",
117 117
          "type": "string"
118 118
        },
119 119
        "handle": {
120 120
          "description": "Handle, when linked.",
121 121
          "format": "handle",
122 122
          "type": "string"
123 123
        },
124 124
        "name": {
125 125
          "description": "Free-text co-speaker name, when not linked.",
126 126
          "type": "string"
127 127
        }
128 128
      },
129 129
      "type": "object"
130 130
    },
131 131
    "contributorView": {
132 132
      "description": "A linked publication contributor.",
133 133
      "properties": {
134 134
        "did": {
135 135
          "description": "Sifa/AT Protocol DID, when linked.",
136 136
          "format": "did",
137 137
          "type": "string"
138 138
        },
139 139
        "handle": {
140 140
          "description": "Handle, when linked.",
141 141
          "format": "handle",
142 142
          "type": "string"
143 143
        },
144 144
        "name": {
145 145
          "description": "Contributor name.",
146 146
          "type": "string"
147 147
        },
148 148
        "orcidId": {
149 149
          "description": "ORCID identifier.",
150 150
          "type": "string"
151 151
        }
152 152
      },
153 153
      "required": [
154 154
        "name"
155 155
      ],
156 156
      "type": "object"
157 157
    },
158 158
    "courseView": {
159 159
      "description": "A course entry.",
160 160
      "properties": {
161 161
        "agentRef": {
162 162
          "description": "Canonical institution reference (name plus optional did/entityRef). Mirrors the flat institution/entityRef fields during the migration; the two always agree.",
163 163
          "ref": "id.sifa.defs#agentRef",
164 164
          "type": "ref"
165 165
        },
166 +
        "completedAt": {
167 +
          "description": "Completion date of a taken course (YYYY-MM or YYYY-MM-DD).",
168 +
          "type": "string"
169 +
        },
166 170
        "credentialRkey": {
167 171
          "description": "Record key of a linked certification, when present.",
168 172
          "type": "string"
169 173
        },
170 174
        "currentCompanyName": {
171 175
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
172 176
          "type": "string"
173 177
        },
178 +
        "endedAt": {
179 +
          "description": "When the user last taught the course; absent if ongoing.",
180 +
          "type": "string"
181 +
        },
174 182
        "entityRef": {
175 183
          "description": "Pointer URI to the resolved institution entity.",
176 184
          "format": "uri",
177 185
          "type": "string"
178 186
        },
179 187
        "institution": {
180 188
          "description": "Institution name.",
181 189
          "type": "string"
182 190
        },
183 191
        "name": {
184 192
          "description": "Course name.",
185 193
          "type": "string"
186 194
        },
187 195
        "number": {
188 196
          "description": "Course number or code.",
189 197
          "type": "string"
190 198
        },
199 +
        "positionRkey": {
200 +
          "description": "Record key of the linked position a taught course belongs to, when present.",
201 +
          "type": "string"
202 +
        },
191 203
        "rkey": {
192 204
          "description": "Record key of the course record.",
193 205
          "type": "string"
206 +
        },
207 +
        "role": {
208 +
          "description": "The user's role in the course (id.sifa.defs#courseRole). Absent means taken.",
209 +
          "type": "string"
210 +
        },
211 +
        "startedAt": {
212 +
          "description": "When the user started teaching the course (YYYY, YYYY-MM or YYYY-MM-DD).",
213 +
          "type": "string"
194 214
        }
195 215
      },
196 216
      "required": [
197 217
        "rkey",
198 218
        "name"
199 219
      ],
200 220
      "type": "object"
201 221
    },
202 222
    "durationView": {
203 223
      "description": "A duration range in minutes.",
204 224
      "properties": {
205 225
        "maxMinutes": {
206 226
          "description": "Maximum duration in minutes.",
207 227
          "type": "integer"
208 228
        },
209 229
        "minMinutes": {
210 230
          "description": "Minimum duration in minutes.",
211 231
          "type": "integer"
212 232
        }
213 233
      },
214 234
      "required": [
215 235
        "minMinutes"
216 236
      ],
217 237
      "type": "object"
218 238
    },
219 239
    "educationView": {
220 240
      "description": "An education-history entry.",
221 241
      "properties": {
222 242
        "activities": {
223 243
          "description": "Activities and societies.",
224 244
          "type": "string"
225 245
        },
226 246
        "agentRef": {
227 247
          "description": "Canonical institution reference (name plus optional did/entityRef). Mirrors the flat institution/institutionDid/entityRef fields during the migration; the two always agree.",
228 248
          "ref": "id.sifa.defs#agentRef",
229 249
          "type": "ref"
230 250
        },
231 251
        "currentCompanyName": {
232 252
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
233 253
          "type": "string"
234 254
        },
235 255
        "degree": {
236 256
          "description": "Degree earned.",
237 257
          "type": "string"
238 258
        },
239 259
        "description": {
240 260
          "description": "Additional description.",
241 261
          "type": "string"
242 262
        },
243 263
        "endedAt": {
244 264
          "description": "End date. Partial date.",
245 265
          "type": "string"
246 266
        },
247 267
        "entityRef": {
248 268
          "description": "Pointer URI to the resolved institution entity.",
249 269
          "format": "uri",
250 270
          "type": "string"
251 271
        },
252 272
        "fieldOfStudy": {
253 273
          "description": "Field of study.",
254 274
          "type": "string"
255 275
        },
256 276
        "institution": {
257 277
          "description": "Institution name.",
258 278
          "type": "string"
259 279
        },
260 280
        "institutionDid": {
261 281
          "description": "DID of the institution, when known.",
262 282
          "format": "did",
263 283
          "type": "string"
264 284
        },
265 285
        "primary": {
266 286
          "description": "Whether this is the user's primary education entry.",
267 287
          "type": "boolean"
268 288
        },
269 289
        "rkey": {
270 290
          "description": "Record key of the education record.",
271 291
          "type": "string"
272 292
        },
273 293
        "startedAt": {
274 294
          "description": "Start date. Partial date.",
275 295
          "type": "string"
276 296
        }
277 297
      },
278 298
      "required": [
279 299
        "rkey"
280 300
      ],
281 301
      "type": "object"
282 302
    },
283 303
    "externalAccountView": {
284 304
      "description": "A linked external account with verification state.",
285 305
      "properties": {
286 306
        "feedUrl": {
287 307
          "description": "Feed URL (RSS/Atom), when applicable.",
288 308
          "format": "uri",
289 309
          "type": "string"
290 310
        },
291 311
        "label": {
292 312
          "description": "Optional custom label.",
293 313
          "type": "string"
294 314
        },
295 315
        "platform": {
296 316
          "description": "Platform type.",
297 317
          "ref": "id.sifa.defs#externalPlatform",
298 318
          "type": "ref"
299 319
        },
300 320
        "primary": {
301 321
          "description": "Whether this is the primary external account.",
302 322
          "type": "boolean"
303 323
        },
304 324
        "rkey": {
305 325
          "description": "Record key of the external account record.",
306 326
          "type": "string"
307 327
        },
308 328
        "url": {
309 329
          "description": "Account URL.",
310 330
          "format": "uri",
311 331
          "type": "string"
312 332
        },
313 333
        "verifiable": {
314 334
          "description": "Whether the account can be verified.",
315 335
          "type": "boolean"
316 336
        },
317 337
        "verified": {
318 338
          "description": "Whether the account is verified.",
319 339
          "type": "boolean"
320 340
        },
321 341
        "verifiedVia": {
322 342
          "description": "Verification method, when verified.",
323 343
          "type": "string"
324 344
        }
325 345
      },
326 346
      "required": [
327 347
        "rkey",
328 348
        "url"
329 349
      ],
330 350
      "type": "object"
331 351
    },
332 352
    "honorView": {
333 353
      "description": "An honor or award.",
334 354
      "properties": {
335 355
        "agentRef": {
336 356
          "description": "Canonical issuer reference (name plus optional did/entityRef). Mirrors the flat issuer/entityRef fields during the migration; the two always agree.",
337 357
          "ref": "id.sifa.defs#agentRef",
338 358
          "type": "ref"
339 359
        },
340 360
        "currentCompanyName": {
341 361
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
342 362
          "type": "string"
343 363
        },
344 364
        "date": {
345 365
          "description": "Date received. Partial date.",
346 366
          "type": "string"
347 367
        },
348 368
        "description": {
349 369
          "description": "Description.",
350 370
          "type": "string"
351 371
        },
352 372
        "entityRef": {
353 373
          "description": "Pointer URI to the resolved issuer entity.",
354 374
          "format": "uri",
355 375
          "type": "string"
356 376
        },
357 377
        "issuer": {
358 378
          "description": "Issuing organization.",
359 379
          "type": "string"
360 380
        },
361 381
        "rkey": {
362 382
          "description": "Record key of the honor record.",
363 383
          "type": "string"
364 384
        },
365 385
        "title": {
366 386
          "description": "Honor or award title.",
367 387
          "type": "string"
368 388
        }
369 389
      },
370 390
      "required": [
371 391
        "rkey",
372 392
        "title"
373 393
      ],
374 394
      "type": "object"
375 395
    },
376 396
    "involvementLinkView": {
377 397
      "description": "A proof link on an involvement.",
378 398
      "properties": {
379 399
        "kind": {
380 400
          "description": "What the link points to (e.g. pull-request, talk, article).",
381 401
          "type": "string"
382 402
        },
383 403
        "label": {
384 404
          "description": "Optional human-readable label.",
385 405
          "type": "string"
386 406
        },
387 407
        "url": {
388 408
          "description": "Artifact URL.",
389 409
          "format": "uri",
390 410
          "type": "string"
391 411
        },
392 412
        "verified": {
393 413
          "description": "True if the link host matches a verified external account.",
394 414
          "type": "boolean"
395 415
        },
396 416
        "verifiedPlatform": {
397 417
          "description": "Platform token of the verified host, when verified.",
398 418
          "type": "string"
399 419
        }
400 420
      },
401 421
      "required": [
402 422
        "url"
403 423
      ],
404 424
      "type": "object"
405 425
    },
406 426
    "involvementView": {
407 427
      "description": "A community, open-source, charity, or civic involvement.",
408 428
      "properties": {
409 429
        "agentRef": {
410 430
          "description": "Canonical upstream reference (name plus optional did/entityRef). Mirrors the flat upstream/upstreamDid/entityRef fields during the migration; the two always agree.",
411 431
          "ref": "id.sifa.defs#agentRef",
412 432
          "type": "ref"
413 433
        },
414 434
        "currentCompanyName": {
415 435
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
416 436
          "type": "string"
417 437
        },
418 438
        "description": {
419 439
          "description": "Description.",
420 440
          "type": "string"
421 441
        },
422 442
        "endedAt": {
423 443
          "description": "End date. Partial date.",
424 444
          "type": "string"
425 445
        },
426 446
        "kind": {
427 447
          "description": "The nature of the involvement.",
428 448
          "ref": "id.sifa.defs#involvementKind",
429 449
          "type": "ref"
430 450
        },
431 451
        "legacy": {
432 452
          "description": "True if mapped from a legacy volunteering record.",
433 453
          "type": "boolean"
434 454
        },
435 455
        "links": {
436 456
          "description": "Public artifact links proving the work.",
437 457
          "items": {
438 458
            "ref": "#involvementLinkView",
439 459
            "type": "ref"
440 460
          },
441 461
          "type": "array"
442 462
        },
443 463
        "primary": {
444 464
          "description": "Whether this is the user's primary current involvement.",
445 465
          "type": "boolean"
446 466
        },
447 467
        "rkey": {
448 468
          "description": "Record key of the involvement (or legacy volunteering) record.",
449 469
          "type": "string"
450 470
        },
451 471
        "role": {
452 472
          "description": "Role in the involvement.",
453 473
          "type": "string"
454 474
        },
455 475
        "startedAt": {
456 476
          "description": "Start date. Partial date.",
457 477
          "type": "string"
458 478
        },
459 479
        "upstream": {
460 480
          "description": "Name of the community, org, or person the involvement is with.",
461 481
          "type": "string"
462 482
        },
463 483
        "upstreamDid": {
464 484
          "description": "DID of the upstream, when known.",
465 485
          "format": "did",
466 486
          "type": "string"
467 487
        },
468 488
        "upstreamUrl": {
469 489
          "description": "URL of the upstream, when provided.",
470 490
          "format": "uri",
471 491
          "type": "string"
472 492
        }
473 493
      },
474 494
      "required": [
475 495
        "rkey",
476 496
        "kind",
477 497
        "links",
478 498
        "legacy"
479 499
      ],
480 500
      "type": "object"
481 501
    },
482 502
    "languageView": {
483 503
      "description": "A language with proficiency.",
484 504
      "properties": {
485 505
        "language": {
486 506
          "description": "Language name or BCP-47 tag.",
487 507
          "type": "string"
488 508
        },
489 509
        "proficiency": {
490 510
          "description": "Proficiency level.",
491 511
          "ref": "id.sifa.defs#proficiency",
492 512
          "type": "ref"
493 513
        },
494 514
        "rkey": {
495 515
          "description": "Record key of the language record.",
496 516
          "type": "string"
497 517
        }
498 518
      },
499 519
      "required": [
500 520
        "rkey",
501 521
        "language"
502 522
      ],
503 523
      "type": "object"
504 524
    },
505 525
    "locationView": {
506 526
      "description": "A professional location on the profile.",
507 527
      "properties": {
508 528
        "countryCode": {
509 529
          "description": "ISO 3166-1 alpha-2 country code.",
510 530
          "type": "string"
511 531
        },
512 532
        "isPrimary": {
513 533
          "description": "Whether this is the primary location.",
514 534
          "type": "boolean"
515 535
        },
516 536
        "label": {
517 537
          "description": "Optional custom label.",
518 538
          "type": "string"
519 539
        },
520 540
        "location": {
521 541
          "description": "Assembled human-readable location string.",
522 542
          "type": "string"
523 543
        },
524 544
        "locationCountry": {
525 545
          "description": "Country name.",
526 546
          "type": "string"
527 547
        },
528 548
        "locationLocality": {
529 549
          "description": "City or locality.",
530 550
          "type": "string"
531 551
        },
532 552
        "locationRegion": {
533 553
          "description": "Region, state, or province.",
534 554
          "type": "string"
535 555
        },
536 556
        "rkey": {
537 557
          "description": "Record key of the location record.",
538 558
          "type": "string"
539 559
        },
540 560
        "type": {
541 561
          "description": "The role this location plays.",
542 562
          "ref": "id.sifa.defs#locationType",
543 563
          "type": "ref"
544 564
        }
545 565
      },
546 566
      "required": [
547 567
        "rkey"
548 568
      ],
549 569
      "type": "object"
550 570
    },
551 571
    "main": {
552 572
      "description": "Get the aggregated public profile view for an actor.",
553 573
      "errors": [
554 574
        {
555 575
          "description": "No profile exists for the given actor, or the actor could not be resolved.",
556 576
          "name": "ProfileNotFound"
557 577
        }
558 578
      ],
559 579
      "output": {
560 580
        "encoding": "application/json",
561 581
        "schema": {
562 582
          "ref": "#profileView",
563 583
          "type": "ref"
564 584
        }
565 585
      },
566 586
      "parameters": {
567 587
        "properties": {
568 588
          "actor": {
569 589
            "description": "The handle or DID of the profile to fetch.",
570 590
            "format": "at-identifier",
571 591
            "type": "string"
572 592
          }
573 593
        },
574 594
        "required": [
575 595
          "actor"
576 596
        ],
577 597
        "type": "params"
578 598
      },
579 599
      "type": "query"
580 600
    },
581 601
    "pdsProviderView": {
582 602
      "description": "A PDS provider descriptor.",
583 603
      "properties": {
584 604
        "host": {
585 605
          "description": "PDS hostname.",
586 606
          "type": "string"
587 607
        },
588 608
        "name": {
589 609
          "description": "Human-readable provider name.",
590 610
          "type": "string"
591 611
        }
592 612
      },
593 613
      "required": [
594 614
        "name"
595 615
      ],
596 616
      "type": "object"
597 617
    },
598 618
    "positionView": {
599 619
      "description": "A work-history entry.",
600 620
      "properties": {
601 621
        "agentRef": {
602 622
          "description": "Canonical company reference (name plus optional did/entityRef). Mirrors the flat company/companyDid/entityRef fields during the migration; the two always agree.",
603 623
          "ref": "id.sifa.defs#agentRef",
604 624
          "type": "ref"
605 625
        },
606 626
        "company": {
607 627
          "description": "Company or organization name.",
608 628
          "type": "string"
609 629
        },
610 630
        "companyDid": {
611 631
          "description": "DID of the company, when known.",
612 632
          "format": "did",
613 633
          "type": "string"
614 634
        },
615 635
        "countryCode": {
616 636
          "description": "ISO 3166-1 alpha-2 country code.",
617 637
          "type": "string"
618 638
        },
619 639
        "currentCompanyName": {
620 640
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
621 641
          "type": "string"
622 642
        },
623 643
        "description": {
624 644
          "description": "Role description.",
625 645
          "type": "string"
626 646
        },
627 647
        "employmentType": {
628 648
          "description": "Employment arrangement.",
629 649
          "ref": "id.sifa.defs#employmentType",
630 650
          "type": "ref"
631 651
        },
632 652
        "endedAt": {
633 653
          "description": "End date. Partial date, absent if current.",
634 654
          "type": "string"
635 655
        },
636 656
        "entityName": {
637 657
          "description": "Resolved canonical company name.",
638 658
          "type": "string"
639 659
        },
640 660
        "entityRef": {
641 661
          "description": "Pointer URI to the resolved company entity.",
642 662
          "format": "uri",
643 663
          "type": "string"
644 664
        },
645 665
        "location": {
646 666
          "description": "Assembled human-readable location string.",
647 667
          "type": "string"
648 668
        },
649 669
        "locationCountry": {
650 670
          "description": "Country name.",
651 671
          "type": "string"
652 672
        },
653 673
        "locationLocality": {
654 674
          "description": "City or locality.",
655 675
          "type": "string"
656 676
        },
657 677
        "locationRegion": {
658 678
          "description": "Region, state, or province.",
659 679
          "type": "string"
660 680
        },
661 681
        "onBehalfOf": {
662 682
          "description": "Party this role is held on behalf of, when the person represents someone else — most often a fund whose board seat this is. A disclosure, not a role type. Absent for independent roles.",
663 683
          "type": "string"
664 684
        },
665 685
        "onBehalfOfDid": {
666 686
          "description": "DID of the represented party, when known. May be an organization or a person.",
667 687
          "format": "did",
668 688
          "type": "string"
669 689
        },
670 690
        "onBehalfOfEntityName": {
671 691
          "description": "Resolved canonical name for the represented party. Present only when the reference resolves; clients render onBehalfOf otherwise, never the raw URI.",
672 692
          "type": "string"
673 693
        },
674 694
        "onBehalfOfEntityRef": {
675 695
          "description": "Pointer URI to the resolved entity for the represented party.",
676 696
          "format": "uri",
677 697
          "type": "string"
678 698
        },
679 699
        "primary": {
680 700
          "description": "Whether this is the user's primary current position.",
681 701
          "type": "boolean"
682 702
        },
683 703
        "rkey": {
684 704
          "description": "Record key of the position record.",
685 705
          "type": "string"
686 706
        },
687 707
        "skillRkeys": {
688 708
          "description": "Record keys of skills linked to this position.",
689 709
          "items": {
690 710
            "type": "string"
691 711
          },
692 712
          "type": "array"
693 713
        },
694 714
        "startedAt": {
695 715
          "description": "Start date. Partial date (YYYY, YYYY-MM, or YYYY-MM-DD).",
696 716
          "type": "string"
697 717
        },
698 718
        "title": {
699 719
          "description": "Job title or role.",
700 720
          "type": "string"
701 721
        },
702 722
        "workplaceType": {
703 723
          "description": "Workplace arrangement.",
704 724
          "ref": "id.sifa.defs#workplaceType",
705 725
          "type": "ref"
706 726
        }
707 727
      },
708 728
      "required": [
709 729
        "rkey",
710 730
        "title"
711 731
      ],
712 732
      "type": "object"
713 733
    },
714 734
    "presentationDeliveryView": {
715 735
      "description": "A single delivery of a presentation at an occasion.",
716 736
      "properties": {
717 737
        "coSpeakers": {
718 738
          "description": "Co-speakers on this delivery.",
719 739
          "items": {
720 740
            "ref": "#coSpeakerView",
721 741
            "type": "ref"
722 742
          },
723 743
          "type": "array"
724 744
        },
725 745
        "date": {
726 746
          "description": "Delivery date. Partial date.",
727 747
          "type": "string"
728 748
        },
729 749
        "eventName": {
730 750
          "description": "Name of the event or occasion.",
731 751
          "type": "string"
732 752
        },
733 753
        "eventUri": {
734 754
          "description": "AT-URI of a linked event record.",
735 755
          "format": "at-uri",
736 756
          "type": "string"
737 757
        },
738 758
        "links": {
739 759
          "description": "Related links for this delivery.",
740 760
          "items": {
741 761
            "ref": "id.sifa.defs#presentationLink",
742 762
            "type": "ref"
743 763
          },
744 764
          "type": "array"
745 765
        },
746 766
        "location": {
747 767
          "description": "Event location.",
748 768
          "type": "string"
749 769
        },
750 770
        "mode": {
751 771
          "description": "Delivery mode (e.g. in-person, remote, hybrid).",
752 772
          "type": "string"
753 773
        },
754 774
        "presentationRkey": {
755 775
          "description": "Record key of the parent presentation, when grouped.",
756 776
          "type": "string"
757 777
        },
758 778
        "rkey": {
759 779
          "description": "Record key of the delivery record.",
760 780
          "type": "string"
761 781
        },
762 782
        "role": {
763 783
          "description": "The user's role in the delivery.",
764 784
          "ref": "id.sifa.defs#presentationRole",
765 785
          "type": "ref"
766 786
        },
767 787
        "status": {
768 788
          "description": "Delivery status.",
769 789
          "type": "string"
770 790
        },
771 791
        "title": {
772 792
          "description": "Delivery title (may differ from the presentation title).",
773 793
          "type": "string"
774 794
        }
775 795
      },
776 796
      "required": [
777 797
        "rkey"
778 798
      ],
779 799
      "type": "object"
780 800
    },
781 801
    "presentationView": {
782 802
      "description": "A talk or session (content), with its deliveries grouped underneath.",
783 803
      "properties": {
784 804
        "deliveries": {
785 805
          "description": "Deliveries of this presentation.",
786 806
          "items": {
787 807
            "ref": "#presentationDeliveryView",
788 808
            "type": "ref"
789 809
          },
790 810
          "type": "array"
791 811
        },
792 812
        "description": {
793 813
          "description": "Presentation description.",
794 814
          "type": "string"
795 815
        },
796 816
        "duration": {
797 817
          "description": "Duration range in minutes.",
798 818
          "ref": "#durationView",
799 819
          "type": "ref"
800 820
        },
801 821
        "intendedAudiences": {
802 822
          "description": "Intended audiences.",
803 823
          "items": {
804 824
            "type": "string"
805 825
          },
806 826
          "type": "array"
807 827
        },
808 828
        "links": {
809 829
          "description": "Related links (slides, recording, etc.).",
810 830
          "items": {
811 831
            "ref": "id.sifa.defs#presentationLink",
812 832
            "type": "ref"
813 833
          },
814 834
          "type": "array"
815 835
        },
816 836
        "primary": {
817 837
          "description": "Whether this is the user's primary talk.",
818 838
          "type": "boolean"
819 839
        },
820 840
        "rkey": {
821 841
          "description": "Record key of the presentation record.",
822 842
          "type": "string"
823 843
        },
824 844
        "title": {
825 845
          "description": "Presentation title.",
826 846
          "type": "string"
827 847
        },
828 848
        "writeupUri": {
829 849
          "description": "AT-URI of a linked write-up record.",
830 850
          "format": "at-uri",
831 851
          "type": "string"
832 852
        }
833 853
      },
834 854
      "required": [
835 855
        "rkey",
836 856
        "title",
837 857
        "deliveries"
838 858
      ],
839 859
      "type": "object"
840 860
    },
841 861
    "profileView": {
842 862
      "description": "The aggregated public professional profile view.",
843 863
      "properties": {
844 864
        "about": {
845 865
          "description": "Longer professional summary or bio.",
846 866
          "maxGraphemes": 5000,
847 867
          "maxLength": 50000,
848 868
          "type": "string"
849 869
        },
850 870
        "activeApps": {
851 871
          "description": "AT Protocol apps this account has recently created records in.",
852 872
          "items": {
853 873
            "ref": "#activeAppView",
854 874
            "type": "ref"
855 875
          },
856 876
          "type": "array"
857 877
        },
858 878
        "atfundContribute": {
859 879
          "description": "Optional contribution/funding link.",
860 880
          "ref": "#atfundLink",
861 881
          "type": "ref"
862 882
        },
863 883
        "atprotoFollowersCount": {
864 884
          "description": "Number of app.bsky.graph followers.",
865 885
          "type": "integer"
866 886
        },
867 887
        "availableFromUtc": {
868 888
          "description": "Start of an availability window, as a UTC offset, if set.",
869 889
          "type": "integer"
870 890
        },
871 891
        "availableToUtc": {
872 892
          "description": "End of an availability window, as a UTC offset, if set.",
873 893
          "type": "integer"
874 894
        },
875 895
        "avatar": {
876 896
          "description": "URL of the profile avatar image.",
877 897
          "format": "uri",
878 898
          "type": "string"
879 899
        },
880 900
        "blueskyVerified": {
881 901
          "description": "Whether the account holds a Bluesky verification.",
882 902
          "type": "boolean"
883 903
        },
884 904
        "blueskyVerifiedAt": {
885 905
          "description": "When the Bluesky verification was issued.",
886 906
          "format": "datetime",
887 907
          "type": "string"
888 908
        },
889 909
        "certifications": {
890 910
          "description": "Certifications and licenses.",
891 911
          "items": {
892 912
            "ref": "#certificationView",
893 913
            "type": "ref"
894 914
          },
895 915
          "type": "array"
896 916
        },
897 917
        "claimed": {
898 918
          "description": "Whether the profile has been claimed by its owner on Sifa.",
899 919
          "type": "boolean"
900 920
        },
901 921
        "connectionsCount": {
902 922
          "description": "Number of confirmed professional connections.",
903 923
          "type": "integer"
904 924
        },
905 925
        "countryCode": {
906 926
          "description": "ISO 3166-1 alpha-2 country code for the primary location.",
907 927
          "type": "string"
908 928
        },
909 929
        "courses": {
910 930
          "description": "Courses, optionally linked to a credential.",
911 931
          "items": {
912 932
            "ref": "#courseView",
913 933
            "type": "ref"
914 934
          },
915 935
          "type": "array"
916 936
        },
917 937
        "createdAt": {
918 938
          "description": "When the profile record was created.",
919 939
          "format": "datetime",
920 940
          "type": "string"
921 941
        },
922 942
        "did": {
923 943
          "description": "The account DID. Stable identifier for the profile.",
924 944
          "format": "did",
925 945
          "type": "string"
926 946
        },
927 947
        "displayName": {
928 948
          "description": "Display name shown on the profile.",
929 949
          "maxGraphemes": 128,
930 950
          "maxLength": 1280,
931 951
          "type": "string"
932 952
        },
933 953
        "education": {
934 954
          "description": "Education history entries.",
935 955
          "items": {
936 956
            "ref": "#educationView",
937 957
            "type": "ref"
938 958
          },
939 959
          "type": "array"
940 960
        },
941 961
        "externalAccounts": {
942 962
          "description": "Linked external accounts, with verification state.",
943 963
          "items": {
944 964
            "ref": "#externalAccountView",
945 965
            "type": "ref"
946 966
          },
947 967
          "type": "array"
948 968
        },
949 969
        "familyName": {
950 970
          "description": "Family (last) name, when provided.",
951 971
          "maxGraphemes": 128,
952 972
          "maxLength": 1280,
953 973
          "type": "string"
954 974
        },
955 975
        "followersCount": {
956 976
          "description": "Number of Sifa graph followers.",
957 977
          "type": "integer"
958 978
        },
959 979
        "followingCount": {
960 980
          "description": "Number of accounts this profile follows on the Sifa graph.",
961 981
          "type": "integer"
962 982
        },
963 983
        "givenName": {
964 984
          "description": "Given (first) name, when provided.",
965 985
          "maxGraphemes": 128,
966 986
          "maxLength": 1280,
967 987
          "type": "string"
968 988
        },
969 989
        "handle": {
970 990
          "description": "The current handle for the account.",
971 991
          "format": "handle",
972 992
          "type": "string"
973 993
        },
974 994
        "headline": {
975 995
          "description": "Short professional headline.",
976 996
          "maxGraphemes": 300,
977 997
          "maxLength": 3000,
978 998
          "type": "string"
979 999
        },
980 1000
        "honors": {
981 1001
          "description": "Honors and awards.",
982 1002
          "items": {
983 1003
            "ref": "#honorView",
984 1004
            "type": "ref"
985 1005
          },
986 1006
          "type": "array"
987 1007
        },
988 1008
        "industries": {
989 1009
          "description": "Industry/domain pairs the user works in.",
990 1010
          "items": {
991 1011
            "ref": "id.sifa.defs#industryDomain",
992 1012
            "type": "ref"
993 1013
          },
994 1014
          "type": "array"
995 1015
        },
996 1016
        "involvement": {
997 1017
          "description": "Community, open-source, charity, and civic involvement.",
998 1018
          "items": {
999 1019
            "ref": "#involvementView",
1000 1020
            "type": "ref"
1001 1021
          },
1002 1022
          "type": "array"
1003 1023
        },
1004 1024
        "langs": {
1005 1025
          "description": "BCP-47 language tags the user has indicated.",
1006 1026
          "items": {
1007 1027
            "type": "string"
1008 1028
          },
1009 1029
          "type": "array"
1010 1030
        },
1011 1031
        "languages": {
1012 1032
          "description": "Spoken/written languages with proficiency.",
1013 1033
          "items": {
1014 1034
            "ref": "#languageView",
1015 1035
            "type": "ref"
1016 1036
          },
1017 1037
          "type": "array"
1018 1038
        },
1019 1039
        "location": {
1020 1040
          "description": "Assembled human-readable primary location string.",
1021 1041
          "type": "string"
1022 1042
        },
1023 1043
        "locationCountry": {
1024 1044
          "description": "Primary location country name.",
1025 1045
          "type": "string"
1026 1046
        },
1027 1047
        "locationLocality": {
1028 1048
          "description": "Primary location city or locality.",
1029 1049
          "type": "string"
1030 1050
        },
1031 1051
        "locationRegion": {
1032 1052
          "description": "Primary location region, state, or province.",
1033 1053
          "type": "string"
1034 1054
        },
1035 1055
        "locations": {
1036 1056
          "description": "All professional locations on the profile.",
1037 1057
          "items": {
1038 1058
            "ref": "#locationView",
1039 1059
            "type": "ref"
1040 1060
          },
1041 1061
          "type": "array"
1042 1062
        },
1043 1063
        "metInPersonCount": {
1044 1064
          "description": "Number of confirmed in-person meetings.",
1045 1065
          "type": "integer"
1046 1066
        },
1047 1067
        "openTo": {
1048 1068
          "description": "The kinds of opportunities the user is open to.",
1049 1069
          "items": {
1050 1070
            "ref": "id.sifa.defs#openToWorkStatus",
1051 1071
            "type": "ref"
1052 1072
          },
1053 1073
          "type": "array"
1054 1074
        },
1055 1075
        "pdsProvider": {
1056 1076
          "description": "The account PDS provider.",
1057 1077
          "ref": "#pdsProviderView",
1058 1078
          "type": "ref"
1059 1079
        },
1060 1080
        "positions": {
1061 1081
          "description": "Work history entries.",
1062 1082
          "items": {
1063 1083
            "ref": "#positionView",
1064 1084
            "type": "ref"
1065 1085
          },
1066 1086
          "type": "array"
1067 1087
        },
1068 1088
        "preferredWorkplace": {
1069 1089
          "description": "Preferred workplace arrangements.",
1070 1090
          "items": {
1071 1091
            "ref": "id.sifa.defs#workplaceType",
1072 1092
            "type": "ref"
1073 1093
          },
1074 1094
          "type": "array"
1075 1095
        },
1076 1096
        "presentationDeliveries": {
1077 1097
          "description": "Standalone deliveries that reference no owned presentation.",
1078 1098
          "items": {
1079 1099
            "ref": "#presentationDeliveryView",
1080 1100
            "type": "ref"
1081 1101
          },
1082 1102
          "type": "array"
1083 1103
        },
1084 1104
        "presentations": {
1085 1105
          "description": "Talks and sessions (content), each with its deliveries grouped underneath.",
1086 1106
          "items": {
1087 1107
            "ref": "#presentationView",
1088 1108
            "type": "ref"
1089 1109
          },
1090 1110
          "type": "array"
1091 1111
        },
1092 1112
        "projects": {
1093 1113
          "description": "Personal or professional projects.",
1094 1114
          "items": {
1095 1115
            "ref": "#projectView",
1096 1116
            "type": "ref"
1097 1117
          },
1098 1118
          "type": "array"
1099 1119
        },
1100 1120
        "pronouns": {
1101 1121
          "description": "Self-described pronouns.",
1102 1122
          "maxGraphemes": 64,
1103 1123
          "maxLength": 640,
1104 1124
          "type": "string"
1105 1125
        },
1106 1126
        "publications": {
1107 1127
          "description": "Publications, merged from Sifa records and linked ORCID works.",
1108 1128
          "items": {
1109 1129
            "ref": "#publicationView",
1110 1130
            "type": "ref"
1111 1131
          },
1112 1132
          "type": "array"
1113 1133
        },
1114 1134
        "skills": {
1115 1135
          "description": "Skills, optionally linked to positions.",
1116 1136
          "items": {
1117 1137
            "ref": "#skillView",
1118 1138
            "type": "ref"
1119 1139
          },
1120 1140
          "type": "array"
1121 1141
        },
1122 1142
        "volunteering": {
1123 1143
          "description": "Legacy volunteering entries. New entries are surfaced under involvement.",
1124 1144
          "items": {
1125 1145
            "ref": "#volunteeringView",
1126 1146
            "type": "ref"
1127 1147
          },
1128 1148
          "type": "array"
1129 1149
        },
1130 1150
        "website": {
1131 1151
          "description": "Primary personal or professional website.",
1132 1152
          "format": "uri",
1133 1153
          "type": "string"
1134 1154
        }
1135 1155
      },
1136 1156
      "required": [
1137 1157
        "did",
1138 1158
        "handle"
1139 1159
      ],
1140 1160
      "type": "object"
1141 1161
    },
1142 1162
    "projectView": {
1143 1163
      "description": "A project entry.",
1144 1164
      "properties": {
1145 1165
        "description": {
1146 1166
          "description": "Project description.",
1147 1167
          "type": "string"
1148 1168
        },
1149 1169
        "endDate": {
1150 1170
          "description": "End date. Partial date.",
1151 1171
          "type": "string"
1152 1172
        },
1153 1173
        "name": {
1154 1174
          "description": "Project name.",
1155 1175
          "type": "string"
1156 1176
        },
1157 1177
        "primary": {
1158 1178
          "description": "Whether this is the user's primary ongoing project.",
1159 1179
          "type": "boolean"
1160 1180
        },
1161 1181
        "rkey": {
1162 1182
          "description": "Record key of the project record.",
1163 1183
          "type": "string"
1164 1184
        },
1165 1185
        "startDate": {
1166 1186
          "description": "Start date. Partial date.",
1167 1187
          "type": "string"
1168 1188
        },
1169 1189
        "url": {
1170 1190
          "description": "Project URL.",
1171 1191
          "format": "uri",
1172 1192
          "type": "string"
1173 1193
        }
1174 1194
      },
1175 1195
      "required": [
1176 1196
        "rkey",
1177 1197
        "name"
1178 1198
      ],
1179 1199
      "type": "object"
1180 1200
    },
1181 1201
    "publicationView": {
1182 1202
      "description": "A publication, merged from Sifa and linked ORCID works.",
1183 1203
      "properties": {
1184 1204
        "contributors": {
1185 1205
          "description": "Linked contributors (co-authors).",
1186 1206
          "items": {
1187 1207
            "ref": "#contributorView",
1188 1208
            "type": "ref"
1189 1209
          },
1190 1210
          "type": "array"
1191 1211
        },
1192 1212
        "date": {
1193 1213
          "description": "Publication date. Partial date.",
1194 1214
          "type": "string"
1195 1215
        },
1196 1216
        "description": {
1197 1217
          "description": "Description or abstract.",
1198 1218
          "type": "string"
1199 1219
        },
1200 1220
        "doi": {
1201 1221
          "description": "Digital Object Identifier.",
1202 1222
          "type": "string"
1203 1223
        },
1204 1224
        "image": {
1205 1225
          "description": "Cover or preview image URL.",
1206 1226
          "format": "uri",
1207 1227
          "type": "string"
1208 1228
        },
1209 1229
        "orcidCorroborated": {
1210 1230
          "description": "Whether an ORCID work corroborates a Sifa record.",
1211 1231
          "type": "boolean"
1212 1232
        },
1213 1233
        "primary": {
1214 1234
          "description": "Whether this is the user's primary publication.",
1215 1235
          "type": "boolean"
1216 1236
        },
1217 1237
        "publicationName": {
1218 1238
          "description": "Name of the source publication venue, when present.",
1219 1239
          "type": "string"
1220 1240
        },
1221 1241
        "publicationUri": {
1222 1242
          "description": "AT-URI of the source publication record, when present.",
1223 1243
          "format": "at-uri",
1224 1244
          "type": "string"
1225 1245
        },
1226 1246
        "publicationUrl": {
1227 1247
          "description": "Canonical publication URL, when present.",
1228 1248
          "format": "uri",
1229 1249
          "type": "string"
1230 1250
        },
1231 1251
        "publisher": {
1232 1252
          "description": "Publisher or journal.",
1233 1253
          "type": "string"
1234 1254
        },
1235 1255
        "rkey": {
1236 1256
          "description": "Record key, or a synthetic key for ORCID-only works.",
1237 1257
          "type": "string"
1238 1258
        },
1239 1259
        "subtitle": {
1240 1260
          "description": "Subtitle.",
1241 1261
          "type": "string"
1242 1262
        },
1243 1263
        "title": {
1244 1264
          "description": "Publication title.",
1245 1265
          "type": "string"
1246 1266
        },
1247 1267
        "type": {
1248 1268
          "description": "Publication type token.",
1249 1269
          "type": "string"
1250 1270
        },
1251 1271
        "typeLabel": {
1252 1272
          "description": "Human-readable publication type.",
1253 1273
          "type": "string"
1254 1274
        },
1255 1275
        "url": {
1256 1276
          "description": "Publication URL.",
1257 1277
          "format": "uri",
1258 1278
          "type": "string"
1259 1279
        },
1260 1280
        "verified": {
1261 1281
          "description": "Whether the publication is verified (e.g. via ORCID).",
1262 1282
          "type": "boolean"
1263 1283
        },
1264 1284
        "verifiedVia": {
1265 1285
          "description": "Verification source, when verified.",
1266 1286
          "type": "string"
1267 1287
        }
1268 1288
      },
1269 1289
      "required": [
1270 1290
        "rkey",
1271 1291
        "title",
1272 1292
        "verified"
1273 1293
      ],
1274 1294
      "type": "object"
1275 1295
    },
1276 1296
    "skillView": {
1277 1297
      "description": "A skill entry.",
1278 1298
      "properties": {
1279 1299
        "category": {
1280 1300
          "description": "Broad category.",
1281 1301
          "ref": "id.sifa.defs#skillCategory",
1282 1302
          "type": "ref"
1283 1303
        },
1284 1304
        "name": {
1285 1305
          "description": "Skill name.",
1286 1306
          "type": "string"
1287 1307
        },
1288 1308
        "positionRkeys": {
1289 1309
          "description": "Record keys of positions this skill is linked to.",
1290 1310
          "items": {
1291 1311
            "type": "string"
1292 1312
          },
1293 1313
          "type": "array"
1294 1314
        },
1295 1315
        "rkey": {
1296 1316
          "description": "Record key of the skill record.",
1297 1317
          "type": "string"
1298 1318
        }
1299 1319
      },
1300 1320
      "required": [
1301 1321
        "rkey",
1302 1322
        "name"
1303 1323
      ],
1304 1324
      "type": "object"
1305 1325
    },
1306 1326
    "volunteeringView": {
1307 1327
      "description": "A legacy volunteering entry.",
1308 1328
      "properties": {
1309 1329
        "agentRef": {
1310 1330
          "description": "Canonical organization reference (name plus optional did/entityRef). Mirrors the flat organization/entityRef fields during the migration; the two always agree.",
1311 1331
          "ref": "id.sifa.defs#agentRef",
1312 1332
          "type": "ref"
1313 1333
        },
1314 1334
        "cause": {
1315 1335
          "description": "Cause supported.",
1316 1336
          "type": "string"
1317 1337
        },
1318 1338
        "currentCompanyName": {
1319 1339
          "description": "Current canonical name of the linked entity, when it resolves. The web shows it as a \"Now {name}\" hint when it differs from the saved snapshot name (#516).",
1320 1340
          "type": "string"
1321 1341
        },
1322 1342
        "description": {
1323 1343
          "description": "Description.",
1324 1344
          "type": "string"
1325 1345
        },
1326 1346
        "endDate": {
1327 1347
          "description": "End date. Partial date.",
1328 1348
          "type": "string"
1329 1349
        },
1330 1350
        "entityRef": {
1331 1351
          "description": "Pointer URI to the resolved organization entity.",
1332 1352
          "format": "uri",
1333 1353
          "type": "string"
1334 1354
        },
1335 1355
        "organization": {
1336 1356
          "description": "Organization name.",
1337 1357
          "type": "string"
1338 1358
        },
1339 1359
        "rkey": {
1340 1360
          "description": "Record key of the volunteering record.",
1341 1361
          "type": "string"
1342 1362
        },
1343 1363
        "role": {
1344 1364
          "description": "Role held.",
1345 1365
          "type": "string"
1346 1366
        },
1347 1367
        "startDate": {
1348 1368
          "description": "Start date. Partial date.",
1349 1369
          "type": "string"
1350 1370
        }
1351 1371
      },
1352 1372
      "required": [
1353 1373
        "rkey",
1354 1374
        "organization"
1355 1375
      ],
1356 1376
      "type": "object"
1357 1377
    }
1358 1378
  },
1359 1379
  "description": "Get the aggregated public professional profile for an actor, as computed by a Sifa AppView. This view joins a user's id.sifa.* records across all sections (positions, education, skills, endorsements received, and more) plus AppView-computed aggregates (follower/connection counts, active apps, verification state). Raw records remain readable directly from the user's PDS; this method exposes the enriched, joined view that only exists in the AppView. Public projection: viewer-specific and internal fields are not included.",
1360 1380
  "id": "id.sifa.getProfileView",
1361 1381
  "lexicon": 1
1362 1382
}

Compare Other Versions

Lexicon Garden

@