com.babesky.actor.profile
Schema Diff
+1 -1
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"id": "com.babesky.actor.profile",
3
3
"defs": {
4
4
"main": {
5
5
"key": "literal:self",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"createdAt"
11
11
],
12
12
"properties": {
13
13
"avatar": {
14
14
"type": "blob",
15
15
"accept": [
16
16
"image/png",
17
17
"image/jpeg",
18
18
"image/webp"
19
19
],
20
20
"maxSize": 1000000,
21
21
"description": "Optional avatar override. Must be a blob already present in the actor's PDS."
22
22
},
23
23
"niches": {
24
24
"type": "array",
25
25
"items": {
26
26
"type": "string",
27
27
"maxGraphemes": 32
28
28
},
29
29
"maxLength": 10,
30
30
"description": "Free-text content category tags chosen by the creator."
31
31
},
32
32
"customs": {
33
33
"ref": "#customsAvailability",
34
34
"type": "ref"
35
35
},
36
36
"tagline": {
37
37
"type": "string",
38
38
"description": "Short creator bio for Atmosphere apps.",
39
39
"maxGraphemes": 280
40
40
},
41
41
"bookings": {
42
42
"ref": "#bookingsAvailability",
43
43
"type": "ref"
44
44
},
45
45
"createdAt": {
46
46
"type": "string",
47
47
"format": "datetime"
48
48
},
49
49
"collabBrand": {
50
50
"type": "boolean",
51
51
"description": "Creator is open to brand partnerships."
52
52
},
53
53
"taglineMode": {
54
54
"type": "string",
55
55
"description": "Whether the tagline supplements or replaces the Bluesky bio on Atmosphere apps.",
56
56
"knownValues": [
57
57
"addition",
58
58
"override"
59
59
]
60
60
},
61
61
"collabContent": {
62
62
"type": "boolean",
63
63
"description": "Creator is open to content collaborations."
64
64
},
65
65
"contentRating": {
66
66
"type": "string",
67
67
"description": "Self-declared content rating. Metadata only. Does not trigger any Bluesky labels.",
68
68
"knownValues": [
69
69
"none",
70
70
"nudity",
71
71
"sexual",
72
72
"porn",
73
73
"graphic-media"
74
74
]
75
75
},
76
76
"preferredContact": {
77
77
"ref": "#contactMethod",
78
78
"type": "ref",
79
79
"description": "How fans should reach out."
80
80
}
81
81
}
82
82
},
83
-
"description": "A creator's extended Atmosphere profile. Stored in the creator's own AT Protocol repository. Only affects Babesky and apps that read this lexicon."
83
+
"description": "Core record of the Babesky creator portfolio. Stores the creator's tagline, avatar, content niches, ratings, collab availability, and contact preferences. Consumed alongside com.babesky.actor.links, com.babesky.actor.support, and com.babesky.actor.featured to render a full portfolio in Atmosphere-compatible apps."
84
84
},
85
85
"contactMethod": {
86
86
"type": "object",
87
87
"required": [
88
88
"kind"
89
89
],
90
90
"properties": {
91
91
"kind": {
92
92
"type": "string",
93
93
"knownValues": [
94
94
"platform",
95
95
"email",
96
96
"signal",
97
97
"whatsapp",
98
98
"telegram",
99
99
"germ",
100
100
"discord",
101
101
"phone",
102
102
"other"
103
103
]
104
104
},
105
105
"value": {
106
106
"type": "string",
107
107
"description": "Contact address (email, handle, phone number, etc.). Not used when kind=platform.",
108
108
"maxGraphemes": 200
109
109
},
110
110
"platformSlug": {
111
111
"type": "string",
112
112
"description": "When kind=platform, references one of the creator's saved com.babesky.actor.links entries by slug."
113
113
}
114
114
}
115
115
},
116
116
"customsAvailability": {
117
117
"type": "object",
118
118
"required": [
119
119
"enabled"
120
120
],
121
121
"properties": {
122
122
"details": {
123
123
"type": "string",
124
124
"description": "Free text: pricing, turnaround, do-not-do list, etc.",
125
125
"maxGraphemes": 500
126
126
},
127
127
"enabled": {
128
128
"type": "boolean"
129
129
},
130
130
"expiresAt": {
131
131
"type": "string",
132
132
"format": "datetime",
133
133
"description": "When this availability window closes. Maximum 30 days from publish time."
134
134
},
135
135
"contentTypes": {
136
136
"type": "array",
137
137
"items": {
138
138
"type": "string",
139
139
"knownValues": [
140
140
"photo",
141
141
"video",
142
142
"audio",
143
143
"physical",
144
144
"other"
145
145
]
146
146
}
147
147
}
148
148
}
149
149
},
150
150
"bookingsAvailability": {
151
151
"type": "object",
152
152
"required": [
153
153
"enabled"
154
154
],
155
155
"properties": {
156
156
"details": {
157
157
"type": "string",
158
158
"maxGraphemes": 500
159
159
},
160
160
"enabled": {
161
161
"type": "boolean"
162
162
},
163
163
"location": {
164
164
"type": "string",
165
165
"description": "City, region, or travel note.",
166
166
"maxGraphemes": 120
167
167
},
168
168
"expiresAt": {
169
169
"type": "string",
170
170
"format": "datetime",
171
171
"description": "When this availability window closes. Maximum 30 days from publish time."
172
172
}
173
173
}
174
174
}
175
175
},
176
176
"$type": "com.atproto.lexicon.schema",
177
177
"lexicon": 1
178
178
}