id.sifa.profile.volunteering
Schema Diff
+10 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.agentRef" }
- AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.agentRef", kind: "prop", name: Some("agentRef") }
- AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body.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.profile.volunteering:body.agentRef" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.agentRef", kind: "prop", name: Some("agentRef") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single volunteer role.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
+
"agentRef": {
10
+
"description": "The organization, as a single nested reference mirroring the flat organization / organizationDid / entityRef fields. Additive dual-write: the flat fields remain the source of truth for existing consumers.",
11
+
"ref": "id.sifa.defs#agentRef",
12
+
"type": "ref"
13
+
},
9
14
"cause": {
10
15
"description": "Cause area (e.g., 'Education', 'Environment', 'Health').",
11
16
"maxGraphemes": 256,
12
17
"maxLength": 2560,
13
18
"type": "string"
14
19
},
15
20
"createdAt": {
16
21
"description": "Client-declared timestamp when this record was originally created.",
17
22
"format": "datetime",
18
23
"type": "string"
19
24
},
20
25
"description": {
21
26
"description": "Description of volunteer activities and impact.",
22
27
"maxGraphemes": 5000,
23
28
"maxLength": 50000,
24
29
"type": "string"
25
30
},
26
31
"endedAt": {
27
32
"description": "End date in YYYY-MM or YYYY-MM-DD format. Omit if currently volunteering.",
28
33
"type": "string"
29
34
},
30
35
"entityRef": {
31
36
"description": "Portable, app-neutral identifier for the organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the organization claims an ATproto account. Absent for free-text entries.",
32
37
"format": "uri",
33
38
"type": "string"
34
39
},
35
40
"organization": {
36
41
"description": "Organization name.",
37
42
"maxGraphemes": 256,
38
43
"maxLength": 2560,
39
44
"minLength": 1,
40
45
"type": "string"
41
46
},
42
47
"organizationDid": {
43
48
"description": "DID of the organization's ATproto account, if one exists.",
44
49
"format": "did",
45
50
"type": "string"
46
51
},
47
52
"role": {
48
53
"description": "Volunteer role or title.",
49
54
"maxGraphemes": 256,
50
55
"maxLength": 2560,
51
56
"type": "string"
52
57
},
53
58
"startedAt": {
54
59
"description": "Start date of the volunteer role in YYYY-MM or YYYY-MM-DD format.",
55
60
"type": "string"
56
61
}
57
62
},
58
63
"required": [
59
64
"organization",
60
65
"createdAt"
61
66
],
62
67
"type": "object"
63
68
},
64
-
"type": "record"
69
+
"type": "record",
70
+
"x-skos:closeMatch": [
71
+
"org:Membership",
72
+
"schema:OrganizationRole"
73
+
]
65
74
}
66
75
},
67
76
"description": "A volunteer experience entry in the user's professional profile.",
68
77
"id": "id.sifa.profile.volunteering",
69
78
"lexicon": 1
70
79
}