This is a follow up discussion from our atmospheric groups meeting today.
Two of the largest pieces that have been identified as “what needs to be defined for atmospheric groups” are group discovery (which we are chatting about the specifics of here) and group management methods.
It seems like there is some alignment based on the discussion about doing our best to define the minimum amount of methods required to allow apps to interact with atmospheric groups while allowing for maximum creativity in the management of said groups, which is going to be a super fun engineering problem!
Some initial questions to get the conversation started:
- Data vs XRPC methods for lexicons
- To role or not to role ←Should there be an initial very basic set of roles defined to work with?
Some initial proposals:
Group Interaction: Showing and joining/leaving a group
- listGroups: Paginated list of all groups (optionally provide member DID for all groups for a specific DID)
- isGroupMember: Is this user a member of this group (optional role field)
- joinGroup: Allow new members to join from any app, if applicable/allowed
- leaveGroup: Allow existing members to leave from any app, if applicable/allowed
- listGroupSpaces: What spaces (public and permissioned) exist under this group (data is retrieved as a protocol specification)
- invite/revokeInvite: For invite-only spaces
Group Delegation: Doing a thing on behalf of a group
- createGroupSpace: Create a new space on behalf of this group