{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Record representing a team membership invitation. Written by a project owner to invite a user to the project team.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "Client-declared timestamp when this invitation was created.",
            "format": "datetime",
            "type": "string"
          },
          "project": {
            "description": "StrongRef to the id.sifa.project.self record. The AT-URI identifies the project, and the CID pins the version.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "role": {
            "description": "Role assigned to the invited member.",
            "ref": "id.sifa.defs#projectRole",
            "type": "ref"
          },
          "subject": {
            "description": "DID of the user being invited to the project team.",
            "format": "did",
            "type": "string"
          },
          "title": {
            "description": "Optional title or role description within the project (e.g. 'Lead Designer', 'Backend Engineer').",
            "maxGraphemes": 128,
            "maxLength": 1280,
            "type": "string"
          }
        },
        "required": [
          "project",
          "subject",
          "role",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "DEPRECATED, never implemented. An invitation to join a project team, written by a project owner in their PDS. Superseded by naming members inline on id.sifa.profile.project and having them affirm it with a generic id.sifa.confirmation record, which serves every people-link relation rather than only projects. Retained so the published schema record keeps resolving; write id.sifa.confirmation instead.",
  "id": "id.sifa.project.member",
  "lexicon": 1
}
