Okay here are my comments on the FEP:
either a Collection or an OrderedCollection object that contains the links to all its objects
Why does it have to contain links to the objects? Thats quite inefficient, as you will have to fetch each object one by one. Its more efficient to have objects directly embedded in the collection json. So this should probably be left for each implementation to decide.
Specifying collections in actors
So it would look something like this? Its a good idea. Would be good to include an example in the FEP.
Using target in objects
Why is this SHOULD and not MUST? If the target field is not set, how do other instances know which collection it belongs to?
And I dont really see why its necessary to include the
attributedTo fields. In Lemmy we would just do a db query with the collection id to get that other info, so it doesnt really simplify anything. Maybe its useful for Smithereen, shouldnt be part of a standard that many different projects will use.
target field is also required in activities, right? Sure in case of a
Create/Note you can get the collection id from the Note, but there are many activities in Lemmy which dont have an object (eg
Like). This is mentioned in the “discussion”, but seems important enough to make a general section “target field”, which applies to both activities and objects in a collection.
Adding an object to a collection
This seems more like an example than part of the spec. I would rename it as such, and move it to the end, also with some example json as mentioned above.
One thing I would definitely like you to add is a description of the HTTP signature based activity forwarding that you mentioned in the other thread. I know HTTP sigs are not part of the Activitypub standard, but this seems like the best place to document it. And so far i’m not really sure how it works.
Lemmy also has many other actions, but all of them work in the same way (user sends to community, community announces to followers). So you could describe the forwarding in a more generic way (with the http signatures), and have the part about deleting as another example.