listing
· recordAn offer or a request, set down where the neighbors closest to it will notice. A listing is the smallest unit of giving here — one thing you’re passing on, or one thing you’re hoping someone nearby can spare.
“Maria’s done with the crib. She posts a listing, and the blocks around her are the first to see it.”
-
Required short title for the item being offered or requested.
-
Required free text describing the item being offered or requested.
- offerrequest
Whether the poster is giving away an item or looking for one.
- availablependinggone
Current availability. Clients should treat a missing value as 'available'.
-
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.
-
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.
-
Up to 4 images of the item, stored as blobs in the poster's repo.
-
Alt text for images, parallel to the images array by index.
- one of 16: furniture, kitchen, clothing, baby, books, instruments, electronics, tools, garden, health, pets, hobbies, food, animals, service, other
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.
-
Language(s) the content is written in, as BCP-47 language tags. Author-asserted; clients default from the composer's locale.
-
Annotations over `description` (mentions, links) keyed by UTF-8 byte range. Reuses app.bsky.richtext.facet for atmosphere-wide interop. Author-asserted at compose time; clients MUST treat them as display hints, re-validate ranges, and never trust a facet URI over the visible text. Addresses and phone numbers are deliberately NOT faceted here — those affordances are direct-message-only.
-
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.
↪ borrows facet · label.defs