{
"id": "id.sifa.profile.project",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"createdAt"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "URL of the project (website, repository, demo, etc.)."
},
"name": {
"type": "string",
"maxLength": 2560,
"minLength": 1,
"description": "Project name.",
"maxGraphemes": 256
},
"labels": {
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union",
"description": "Self-label values for this project record."
},
"endedAt": {
"type": "string",
"description": "Project end date in YYYY-MM or YYYY-MM-DD format. Omit if ongoing."
},
"members": {
"type": "array",
"items": {
"ref": "id.sifa.defs#projectMemberRef",
"type": "ref"
},
"maxLength": 50,
"description": "Other people who worked on this project. Each entry is a claim by the record author and is not self-verifying: the named person supplies the other half by publishing an id.sifa.confirmation record whose subject is this record and whose relation is id.sifa.defs#projectMember. Until they do, consumers must render the entry without their display name, avatar, or profile link. Confirming never puts this record on the named person's profile: it lives in the author's repository and the author can rename it at any time. A named person who wants the project on their profile keeps their own id.sifa.profile.project record and points its projectRef here."
},
"position": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Reference to the associated id.sifa.profile.position record, if applicable."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created."
},
"startedAt": {
"type": "string",
"description": "Project start date in YYYY-MM or YYYY-MM-DD format."
},
"projectRef": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Reference to the same project as recorded elsewhere: another person's id.sifa.profile.project entry for the work you shared, or a first-class id.sifa.project.self record. Set when you were named as a member of someone else's entry and keep your own version of it, so consumers can tell the two describe one project instead of showing it twice."
},
"description": {
"type": "string",
"maxLength": 50000,
"description": "Description of the project, the user's role, and outcomes.",
"maxGraphemes": 5000
}
}
},
"description": "Record representing a single project."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A project the user has worked on."
}