Continuing the discussion from Wiki: Vision for a Fedi Specification:
Hi @benpate
I started a new topic, as this will probably take a bit of back and forth. My goal is to bring the DX requirement on a content format into the Vision / Concept Template. I think that our two following points are somewhat in conflict. However, I also think that you proposed a solution with Lowest Common Denominator.
From this, I would arrive at the following:
Vision / Concept
An extensible minimal common content format.
Functional requirements
- [ ] The format is easily validated, e.g. exists as a json-schema that must pass.
- [ ] The format can be extended and used for multiple purposes, e.g. music sharing, recipes, micro blogging, …
- [ ] Notifications can be generated from this, e.g. “Ben shared his latest experiments on the synthesizer.”.
Non-functional requirements
- [ ] Dev guide on how to use this content format.
- [ ] Extensions can be clearly documented and recognized.
It is often helpful to think in analogies. If we imagine out Fedi2 as a filesystem, this common format would be like the filename with extension, date, and all other things the filesystem provides. The extensibility would be realized by files having content.
By
- [ ] Extensions can be clearly documented and recognized.
I mean that if I want to do a location based thing. I don’t just add a location property to my objects (as one would guess from ActivityStreams), but do something more. I’m not sure how I exactly I envision this. But something is needed.
Open Questions
Currently, this takes the view that minimal interactions are “being notified about new content”. This is not necessarily a social experience yet. One might want to include some interactions, or make the design that satisfies the above protocol base and make the one that allows to interact, i.e. replies / likes / shares, an extension of it.
I’m not sure which option I would prefer, or what the use cases of protocol base would be. Opinions?