After reviewing FEP-5624: Per-object reply control policies and GoToSocial's interaction policy spec, I find myself leaning toward the latter for long-term considerations, though both have merit.

FEP-5624 is admirably focused and simpler to implement, which I appreciate. However, 's approach seems to offer some architectural advantages:

  1. The three-tier permission model (allow/require approval/deny) feels more flexible than binary allow/deny
  2. Separating approval objects from interactions appears more secure against forgery
  3. The explicit handling of edge cases (mentioned users, post authors) provides clearer semantics
  4. The extensible framework allows for handling diverse interaction types, not just replies

I wonder if creating an that extracts GoToSocial's interaction policy design into a standalone standard might be worthwhile. It could potentially serve as a more comprehensive foundation for access control in .

This is merely my initial impression though. I'd be curious to hear other developers' perspectives on these approaches.

@hongminhee洪 民憙 (Hong Minhee)

I think the "interaction policy" part of GTS implementation is good, but their approach to managing conversations is wrong. They don't really have conversations, only independent posts loosely connected to each other:

https://docs.gotosocial.org/en/latest/federation/interaction_policy/#subsequent-replies-scope-widening

I think FEP-171b: Conversation Containers is a better conversation model. In that model, replies are not independent, but parts of a whole. interactionPolicy property can be used there too, but it would apply to a conversation and not to an individual post.

FEP-171b solves many problems, including synchronization of replies and reactions. The only advantage of the reply tree model is that each reply can be micro-managed by its author. But who really needs that?

1

If you have a fediverse account, you can quote this note from your own instance. Search https://mitra.social/objects/0196a1fa-e77f-ef66-77ce-4a8c87234ceb on your instance and quote it. (Note that quoting is not supported in Mastodon.)