id.sifa.getProfileView

sifa.id

Schema Diff

+241 -4

From

CID
bafyreifj2fdxyod...
Indexed At
2026-07-17 13:09 UTC
View this version

To

CID
bafyreihtlq4pqoi...
Indexed At
2026-09-30 21:17 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 114 non-breaking changes.

Breaking Changes (4)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#projectEventView", src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.methods", kind: "prop", name: Some("methods") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.status", kind: "prop", name: Some("status") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "id.sifa.getProfileView#positionVerification", src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.verifiedAt", kind: "prop", name: Some("verifiedAt") }
Non-Breaking Changes (114)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#employmentStatus" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#verificationMethod" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#certificationView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#certificationView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.educationRkey" }
  • 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" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.eqfLevel" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.primary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#honorView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#honorView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.primary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.expiresAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods:items" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.status" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.uri" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.verifiedAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.currentCompanyName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOf" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfDid" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfEntityName" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfEntityRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.verification" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#presentationView.primary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.country" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.locality" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.mode" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.name" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.role" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.startsAt" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.uri" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.url" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events:items" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.primary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.role" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.primary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#volunteeringView.agentRef" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.getProfileView#volunteeringView.currentCompanyName" }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#certificationView", tgt: "id.sifa.getProfileView#certificationView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#certificationView", tgt: "id.sifa.getProfileView#certificationView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#certificationView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.agentRef", kind: "prop", name: Some("agentRef") }
  • 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.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView", tgt: "id.sifa.getProfileView#courseView.educationRkey", kind: "prop", name: Some("educationRkey") }
  • 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") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#courseView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.eqfLevel", kind: "prop", name: Some("eqfLevel") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView", tgt: "id.sifa.getProfileView#educationView.primary", kind: "prop", name: Some("primary") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#educationView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#honorView", tgt: "id.sifa.getProfileView#honorView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#honorView", tgt: "id.sifa.getProfileView#honorView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#honorView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#involvementView", tgt: "id.sifa.getProfileView#involvementView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#involvementView", tgt: "id.sifa.getProfileView#involvementView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#involvementView", tgt: "id.sifa.getProfileView#involvementView.primary", kind: "prop", name: Some("primary") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#involvementView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.expiresAt", kind: "prop", name: Some("expiresAt") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification", tgt: "id.sifa.getProfileView#positionVerification.uri", kind: "prop", name: Some("uri") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods", tgt: "id.sifa.getProfileView#positionVerification.methods:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.methods:items", tgt: "id.sifa.defs#verificationMethod", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionVerification.status", tgt: "id.sifa.defs#employmentStatus", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.onBehalfOf", kind: "prop", name: Some("onBehalfOf") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.onBehalfOfDid", kind: "prop", name: Some("onBehalfOfDid") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.onBehalfOfEntityName", kind: "prop", name: Some("onBehalfOfEntityName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.onBehalfOfEntityRef", kind: "prop", name: Some("onBehalfOfEntityRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView", tgt: "id.sifa.getProfileView#positionView.verification", kind: "prop", name: Some("verification") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#positionView.verification", tgt: "id.sifa.getProfileView#positionVerification", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#presentationView", tgt: "id.sifa.getProfileView#presentationView.primary", kind: "prop", name: Some("primary") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.country", kind: "prop", name: Some("country") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.locality", kind: "prop", name: Some("locality") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.mode", kind: "prop", name: Some("mode") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.name", kind: "prop", name: Some("name") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.role", kind: "prop", name: Some("role") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.startsAt", kind: "prop", name: Some("startsAt") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectEventView", tgt: "id.sifa.getProfileView#projectEventView.url", kind: "prop", name: Some("url") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.events", kind: "prop", name: Some("events") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.primary", kind: "prop", name: Some("primary") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView", tgt: "id.sifa.getProfileView#projectView.role", kind: "prop", name: Some("role") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView.events", tgt: "id.sifa.getProfileView#projectView.events:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#projectView.events:items", tgt: "id.sifa.getProfileView#projectEventView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView", tgt: "id.sifa.getProfileView#publicationView.primary", kind: "prop", name: Some("primary") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers", kind: "prop", name: Some("relatedIdentifiers") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers", tgt: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items", tgt: "id.sifa.defs#relatedIdentifier", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#volunteeringView", tgt: "id.sifa.getProfileView#volunteeringView.agentRef", kind: "prop", name: Some("agentRef") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#volunteeringView", tgt: "id.sifa.getProfileView#volunteeringView.currentCompanyName", kind: "prop", name: Some("currentCompanyName") }
  • AddedEdge AddedEdge { src: "id.sifa.getProfileView#volunteeringView.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
  • AddedVertex { vertex_id: "id.sifa.defs#employmentStatus" }
  • AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }
  • AddedVertex { vertex_id: "id.sifa.defs#verificationMethod" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#certificationView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#certificationView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.completedAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#courseView.educationRkey" }
  • 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" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.eqfLevel" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#educationView.primary" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#honorView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#honorView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#involvementView.primary" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.expiresAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.methods:items" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.status" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.uri" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionVerification.verifiedAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.currentCompanyName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOf" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfDid" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfEntityName" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.onBehalfOfEntityRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#positionView.verification" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#presentationView.primary" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.country" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.locality" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.mode" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.name" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.role" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.startsAt" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.uri" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectEventView.url" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.events:items" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.primary" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#projectView.role" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.primary" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#publicationView.relatedIdentifiers:items" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#volunteeringView.agentRef" }
  • AddedVertex { vertex_id: "id.sifa.getProfileView#volunteeringView.currentCompanyName" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@