community.buynothing.listing

buynothing.community View official

Schema Diff

+9 -2

From

CID
bafyreifd5cibwgu...
Indexed At
2026-05-30 22:38 UTC
View this version

To

CID
bafyreidqoisjhio...
Indexed At
2026-05-31 02:32 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 0 non-breaking changes.

Breaking Changes (2)
  • ConstraintAdded ConstraintAdded { vertex_id: "community.buynothing.listing:body.description", sort: "minLength", value: "1" }
  • ConstraintAdded ConstraintAdded { vertex_id: "community.buynothing.listing:body.title", sort: "minLength", value: "1" }

Migration Guidance

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "community.buynothing.listing:body.title", sort: "minLength", value: "1" }
  • ConstraintAdded ConstraintAdded { vertex_id: "community.buynothing.listing:body.description", sort: "minLength", value: "1" }
1 1
{
2 2
  "id": "community.buynothing.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 +
          "description",
12 13
          "geohash",
13 14
          "createdAt"
14 15
        ],
15 16
        "properties": {
16 17
          "title": {
17 18
            "type": "string",
18 19
            "maxLength": 200,
19 -
            "maxGraphemes": 100
20 +
            "minLength": 1,
21 +
            "description": "Required short title for the item being offered or requested.",
22 +
            "maxGraphemes": 100,
23 +
            "minGraphemes": 1
20 24
          },
21 25
          "images": {
22 26
            "type": "array",
23 27
            "items": {
24 28
              "type": "blob",
25 29
              "accept": [
26 30
                "image/jpeg",
27 31
                "image/png",
28 32
                "image/webp"
29 33
              ],
30 34
              "maxSize": 1000000
31 35
            },
32 36
            "maxLength": 4,
33 37
            "description": "Up to 4 images of the item, stored as blobs in the poster's repo."
34 38
          },
35 39
          "intent": {
36 40
            "enum": [
37 41
              "offer",
38 42
              "request"
39 43
            ],
40 44
            "type": "string",
41 45
            "description": "Whether the poster is giving away an item or looking for one."
42 46
          },
43 47
          "status": {
44 48
            "enum": [
45 49
              "available",
46 50
              "pending",
47 51
              "gone"
48 52
            ],
49 53
            "type": "string",
50 54
            "description": "Current availability. Clients should treat a missing value as 'available'."
51 55
          },
52 56
          "geohash": {
53 57
            "type": "string",
54 58
            "maxLength": 6,
55 59
            "minLength": 1,
56 60
            "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."
57 61
          },
58 62
          "createdAt": {
59 63
            "type": "string",
60 64
            "format": "datetime"
61 65
          },
62 66
          "imageAlts": {
63 67
            "type": "array",
64 68
            "items": {
65 69
              "type": "string",
66 70
              "maxGraphemes": 1000
67 71
            },
68 72
            "maxLength": 4,
69 73
            "description": "Alt text for images, parallel to the images array by index."
70 74
          },
71 75
          "description": {
72 76
            "type": "string",
73 77
            "maxLength": 3000,
74 -
            "maxGraphemes": 1500
78 +
            "minLength": 1,
79 +
            "description": "Required free text describing the item being offered or requested.",
80 +
            "maxGraphemes": 1500,
81 +
            "minGraphemes": 1
75 82
          },
76 83
          "locationName": {
77 84
            "type": "string",
78 85
            "maxLength": 300,
79 86
            "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.",
80 87
            "maxGraphemes": 100
81 88
          }
82 89
        }
83 90
      },
84 91
      "description": "An offer or request for a free item, discoverable by approximate location."
85 92
    }
86 93
  },
87 94
  "$type": "com.atproto.lexicon.schema",
88 95
  "lexicon": 1
89 96
}

Compare Other Versions

Lexicon Garden

@