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
"id": "community.gifthood.listing",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"title",
11
11
"intent",
12
12
"description",
13
13
"geohash",
14
14
"createdAt"
15
15
],
16
16
"properties": {
17
17
"langs": {
18
18
"type": "array",
19
19
"items": {
20
20
"type": "string",
21
21
"format": "language"
22
22
},
23
23
"maxLength": 3,
24
24
"description": "Language(s) the content is written in, as BCP-47 language tags. Author-asserted; clients default from the composer's locale."
25
25
},
26
26
"title": {
27
27
"type": "string",
28
28
"maxLength": 200,
29
29
"minLength": 1,
30
30
"description": "Required short title for the item being offered or requested.",
31
31
"maxGraphemes": 100,
32
32
"minGraphemes": 1
33
33
},
34
34
"images": {
35
35
"type": "array",
36
36
"items": {
37
37
"type": "blob",
38
38
"accept": [
39
39
"image/jpeg",
40
40
"image/png",
41
41
"image/webp"
42
42
],
43
43
"maxSize": 1000000
44
44
},
45
45
"maxLength": 4,
46
46
"description": "Up to 4 images of the item, stored as blobs in the poster's repo."
47
47
},
48
48
"intent": {
49
49
"enum": [
50
50
"offer",
51
51
"request"
52
52
],
53
53
"type": "string",
54
54
"description": "Whether the poster is giving away an item or looking for one."
55
55
},
56
56
"labels": {
57
57
"refs": [
58
58
"com.atproto.label.defs#selfLabels"
59
59
],
60
60
"type": "union",
61
61
"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."
62
62
},
63
63
"status": {
64
64
"enum": [
65
65
"available",
66
66
"pending",
67
67
"gone"
68
68
],
69
69
"type": "string",
70
70
"description": "Current availability. Clients should treat a missing value as 'available'."
71
71
},
72
72
"geohash": {
73
73
"type": "string",
74
74
"maxLength": 6,
75
75
"minLength": 1,
76
76
"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."
77
77
},
78
78
"category": {
79
79
"enum": [
80
80
"furniture",
81
81
"kitchen",
82
82
"clothing",
83
83
"baby",
84
84
"books",
85
+
"instruments",
85
86
"electronics",
86
87
"tools",
87
88
"garden",
88
89
"health",
89
90
"pets",
90
91
"hobbies",
91
92
"food",
92
93
"animals",
93
94
"service",
94
95
"other"
95
96
],
96
97
"type": "string",
97
98
"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."
98
99
},
99
100
"createdAt": {
100
101
"type": "string",
101
102
"format": "datetime"
102
103
},
103
104
"imageAlts": {
104
105
"type": "array",
105
106
"items": {
106
107
"type": "string",
107
108
"maxGraphemes": 1000
108
109
},
109
110
"maxLength": 4,
110
111
"description": "Alt text for images, parallel to the images array by index."
111
112
},
112
113
"description": {
113
114
"type": "string",
114
115
"maxLength": 3000,
115
116
"minLength": 1,
116
117
"description": "Required free text describing the item being offered or requested.",
117
118
"maxGraphemes": 1500,
118
119
"minGraphemes": 1
119
120
},
120
121
"locationName": {
121
122
"type": "string",
122
123
"maxLength": 300,
123
124
"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.",
124
125
"maxGraphemes": 100
125
126
}
126
127
}
127
128
},
128
129
"description": "An offer or request for a free item, discoverable by approximate location."
129
130
}
130
131
},
131
132
"$type": "com.atproto.lexicon.schema",
132
133
"lexicon": 1
133
134
}