community.gifthood.listing

gifthood.community

Schema Diff

+37 -0

From

CID
bafyreid3eisc45u...
Indexed At
2026-06-01 04:18 UTC
View this version

To

CID
bafyreibaq7x5yvi...
Indexed At
2026-06-13 00:08 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 12 non-breaking changes.

Non-Breaking Changes (12)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex AddedVertex { vertex_id: "community.gifthood.listing:body.category" }
  • AddedVertex AddedVertex { vertex_id: "community.gifthood.listing:body.labels" }
  • AddedVertex AddedVertex { vertex_id: "community.gifthood.listing:body.labels:variant0" }
  • AddedVertex AddedVertex { vertex_id: "community.gifthood.listing:body.langs" }
  • AddedVertex AddedVertex { vertex_id: "community.gifthood.listing:body.langs:items" }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body", tgt: "community.gifthood.listing:body.category", kind: "prop", name: Some("category") }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body", tgt: "community.gifthood.listing:body.labels", kind: "prop", name: Some("labels") }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body", tgt: "community.gifthood.listing:body.langs", kind: "prop", name: Some("langs") }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body.labels", tgt: "community.gifthood.listing:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "community.gifthood.listing:body.langs", tgt: "community.gifthood.listing:body.langs:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedVertex { vertex_id: "community.gifthood.listing:body.category" }
  • AddedVertex { vertex_id: "community.gifthood.listing:body.labels" }
  • AddedVertex { vertex_id: "community.gifthood.listing:body.labels:variant0" }
  • AddedVertex { vertex_id: "community.gifthood.listing:body.langs" }
  • AddedVertex { vertex_id: "community.gifthood.listing:body.langs:items" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@