community.gifthood.listing
Schema Diff
+1 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 0 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "community.gifthood.listing:body.category", sort: "enum", old_value: "furniture,kitchen,clothing,baby,books,electronics,tools,garden,health,pets,hobbies,food,animals,service,other", new_value: "furniture,kitchen,clothing,baby,books,instruments,electronics,tools,garden,health,pets,hobbies,food,animals,service,other" }
Migration Guidance
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "community.gifthood.listing:body.category", sort: "enum", old_value: "furniture,kitchen,clothing,baby,books,electronics,tools,garden,health,pets,hobbies,food,animals,service,other", new_value: "furniture,kitchen,clothing,baby,books,instruments,electronics,tools,garden,health,pets,hobbies,food,animals,service,other" }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "An offer or request for a free item, discoverable by approximate location.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"category": {
10
10
"description": "Optional single-level category for opt-out feed filtering. Append-only enum; unknown or missing values index as 'other'. Never used for proximity or safety logic.",
11
11
"enum": [
12
12
"furniture",
13
13
"kitchen",
14
14
"clothing",
15
15
"baby",
16
16
"books",
17
+
"instruments",
17
18
"electronics",
18
19
"tools",
19
20
"garden",
20
21
"health",
21
22
"pets",
22
23
"hobbies",
23
24
"food",
24
25
"animals",
25
26
"service",
26
27
"other"
27
28
],
28
29
"type": "string"
29
30
},
30
31
"createdAt": {
31
32
"format": "datetime",
32
33
"type": "string"
33
34
},
34
35
"description": {
35
36
"description": "Required free text describing the item being offered or requested.",
36
37
"maxGraphemes": 1500,
37
38
"maxLength": 3000,
38
39
"minGraphemes": 1,
39
40
"minLength": 1,
40
41
"type": "string"
41
42
},
42
43
"geohash": {
43
44
"description": "Approximate location as a geohash, precision 6 (~1.2km cell). This is a privacy floor: indexers MUST truncate any finer-precision value to 6 characters before indexing or display.",
44
45
"maxLength": 6,
45
46
"minLength": 1,
46
47
"type": "string"
47
48
},
48
49
"imageAlts": {
49
50
"description": "Alt text for images, parallel to the images array by index.",
50
51
"items": {
51
52
"maxGraphemes": 1000,
52
53
"type": "string"
53
54
},
54
55
"maxLength": 4,
55
56
"type": "array"
56
57
},
57
58
"images": {
58
59
"description": "Up to 4 images of the item, stored as blobs in the poster's repo.",
59
60
"items": {
60
61
"accept": [
61
62
"image/jpeg",
62
63
"image/png",
63
64
"image/webp"
64
65
],
65
66
"maxSize": 1000000,
66
67
"type": "blob"
67
68
},
68
69
"maxLength": 4,
69
70
"type": "array"
70
71
},
71
72
"intent": {
72
73
"description": "Whether the poster is giving away an item or looking for one.",
73
74
"enum": [
74
75
"offer",
75
76
"request"
76
77
],
77
78
"type": "string"
78
79
},
79
80
"labels": {
80
81
"description": "Self-labels set by the author. Used to flag mature/adult content (e.g. the global 'sexual' value), which the AppView gates behind an opt-in.",
81
82
"refs": [
82
83
"com.atproto.label.defs#selfLabels"
83
84
],
84
85
"type": "union"
85
86
},
86
87
"langs": {
87
88
"description": "Language(s) the content is written in, as BCP-47 language tags. Author-asserted; clients default from the composer's locale.",
88
89
"items": {
89
90
"format": "language",
90
91
"type": "string"
91
92
},
92
93
"maxLength": 3,
93
94
"type": "array"
94
95
},
95
96
"locationName": {
96
97
"description": "Optional human-readable area name. App-populated via reverse geocoding of the geohash cell. Display only; MUST NOT be used for proximity matching or filtering.",
97
98
"maxGraphemes": 100,
98
99
"maxLength": 300,
99
100
"type": "string"
100
101
},
101
102
"status": {
102
103
"description": "Current availability. Clients should treat a missing value as 'available'.",
103
104
"enum": [
104
105
"available",
105
106
"pending",
106
107
"gone"
107
108
],
108
109
"type": "string"
109
110
},
110
111
"title": {
111
112
"description": "Required short title for the item being offered or requested.",
112
113
"maxGraphemes": 100,
113
114
"maxLength": 200,
114
115
"minGraphemes": 1,
115
116
"minLength": 1,
116
117
"type": "string"
117
118
}
118
119
},
119
120
"required": [
120
121
"title",
121
122
"intent",
122
123
"description",
123
124
"geohash",
124
125
"createdAt"
125
126
],
126
127
"type": "object"
127
128
},
128
129
"type": "record"
129
130
}
130
131
},
131
132
"id": "community.gifthood.listing",
132
133
"lexicon": 1
133
134
}