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.
It does kind of sound like the app that recognizes the most schemas will likely win. It seems there is no benefit to using a limited schema app - and you'd end up missing content that the creator assumes you see. Ex: You can make an app that only shows pictures, but the people posting pictures will likely assume you also can see.. their Leaflet docs or whatnot. You can't force restrictions on the users - ex: if you use my Freegram schema then well you can't add additional stuff - b/c that's the social space we're building
Unless I'm misunderstanding the doc, the lexicon seems also very limited in what it can express. You can't specify images have to be black and white, or video clips have to be shorter than 15seconds. Or replies have different restrictions from posts.
It's maybe impossible to encode everything - but furthermore a lot of the "app culture" is just due to the app design. The photo description on instagram can be extremely long. You can write a diatribe about.. whatever. But it's hidden behind an collapsible button - which make it so people don't typically engage with it.
That's all to say, I think ATProto is very cool - but there is (maybe unfortunately) still a space for the walled gardens b/c they're providing a certain subculture.
> 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