this repo has no description
1{
2 "lexicon": 1,
3 "id": "agency.portable.membership",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "A self-attested claim by an atproto account that it is linked to an identity, community, or role in an external service. Paired with a matching agency.portable.attestation record on the attester's PDS.",
8 "key": "any",
9 "record": {
10 "type": "object",
11 "required": ["service", "attestedBy", "createdAt"],
12 "properties": {
13 "service": {
14 "type": "ref",
15 "ref": "#service"
16 },
17 "role": {
18 "type": "string",
19 "description": "Optional role, rank, or status within the service or community (e.g. 'admin', 'maintainer', 'fascinator')."
20 },
21 "attestedBy": {
22 "type": "string",
23 "format": "did",
24 "description": "DID of the attester that verified this claim."
25 },
26 "createdAt": {
27 "type": "string",
28 "format": "datetime"
29 }
30 }
31 }
32 },
33 "service": {
34 "type": "object",
35 "description": "Identifies an external service and, optionally, a specific community and identity within it.",
36 "required": ["type"],
37 "properties": {
38 "type": {
39 "type": "string",
40 "description": "External service identifier (e.g. 'discord', 'github', 'slack')."
41 },
42 "community": {
43 "type": "string",
44 "description": "Optional identifier for a specific group, server, workspace, or organization within the service (e.g. a Discord guild ID, a GitHub org slug)."
45 },
46 "identifier": {
47 "type": "string",
48 "description": "Optional external identity within the service (e.g. a user ID or handle). Include when proving platform identity; may be omitted when only proving community or role membership."
49 }
50 }
51 }
52 }
53}