{
"id": "id.sifa.project.member",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"project",
"subject",
"role",
"createdAt"
],
"properties": {
"role": {
"ref": "id.sifa.defs#projectRole",
"type": "ref",
"description": "Role assigned to the invited member."
},
"title": {
"type": "string",
"maxLength": 1280,
"description": "Optional title or role description within the project (e.g. 'Lead Designer', 'Backend Engineer').",
"maxGraphemes": 128
},
"project": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "StrongRef to the id.sifa.project.self record. The AT-URI identifies the project, and the CID pins the version."
},
"subject": {
"type": "string",
"format": "did",
"description": "DID of the user being invited to the project team."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this invitation was created."
}
}
},
"description": "Record representing a team membership invitation. Written by a project owner to invite a user to the project team."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "An invitation to join a project team, written by a project owner in their PDS. The invited user must create a corresponding id.sifa.project.membership record to confirm. Both records existing = confirmed team member."
}