{
"id": "id.sifa.profile.volunteering",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"organization",
"createdAt"
],
"properties": {
"role": {
"type": "string",
"maxLength": 2560,
"description": "Volunteer role or title.",
"maxGraphemes": 256
},
"cause": {
"type": "string",
"maxLength": 2560,
"description": "Cause area (e.g., 'Education', 'Environment', 'Health').",
"maxGraphemes": 256
},
"endedAt": {
"type": "string",
"description": "End date in YYYY-MM or YYYY-MM-DD format. Omit if currently volunteering."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created."
},
"entityRef": {
"type": "string",
"format": "uri",
"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."
},
"startedAt": {
"type": "string",
"description": "Start date of the volunteer role in YYYY-MM or YYYY-MM-DD format."
},
"description": {
"type": "string",
"maxLength": 50000,
"description": "Description of volunteer activities and impact.",
"maxGraphemes": 5000
},
"organization": {
"type": "string",
"maxLength": 2560,
"minLength": 1,
"description": "Organization name.",
"maxGraphemes": 256
},
"organizationDid": {
"type": "string",
"format": "did",
"description": "DID of the organization's ATproto account, if one exists."
}
}
},
"description": "Record representing a single volunteer role.",
"x-skos:closeMatch": [
"org:Membership",
"schema:OrganizationRole"
]
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A volunteer experience entry in the user's professional profile."
}