Earlier quoted context omitted.
Designers of atproto actually agree with you so the data is not unstructured! It’s structured by schemas (called “lexicons”) controlled by app developers. Data in user repositories is treated as untrusted input by apps, and rejected if it doesn’t pass the corresponding schema. Schemas are evolved in a backwards-compatible way with a nudge towards future extension (eg open unions are default). That’s exactly why you c…
ah okay, i hadnt come across this. seems like a potentially viable strategy > Schemas are evolved in a backwards-compatible way with a nudge towards future extension (eg open unions are default). unions of schemas? Doesnt that lead to a facebook-ized kitchen sink app that does everything? you can effectivelt filter to .. say .. only photos with a photo-only app. But that doesnt form a app/schema culture
I meant specifically that “unions” default to open. Let me give you an example. A Bluesky post may contain different types of attachments. Image, gallery, video, etc. That’s a union of known schemas. However, that union is open. That means that generated type will include “or unknown” as the last possible value. Apps are expected to ignore that case when pattern patching since they wouldn’t know how to interpret it. However, that leaves Bluesky with ability to later officially support other types of attachments. Because more potential types could be added to the union layer (making some previously “unknown” stuff typed).
This has an interesting consequence that third party clients can “recognize” some type before it’s official. Eg some third party Bluesky client could choose to explicitly support a “Leaflet document” attachment to Bluesky posts, governed by Leaflet schema. If this pattern gets popular, Bluesky could be motivated to also support it, and even to reference a Leaflet document as one explicitly noted subtype of that union. Or it could keep ignoring it as one of the “unknown” values.
More on social issues around lexicons here: https://www.pfrazee.com/blog/lexicon-guidance