GroupUpdate:
    | { Type: "GroupDoesNotExist" } & StringGroupUpdate
    | { Type: "GroupJoined" } & GroupInfoDtoGroupUpdate
    | { Type: "GroupLeft" } & StringGroupUpdate
    | { Type: "LibraryAccessDenied" } & StringGroupUpdate
    | { Type: "NotInGroup" } & StringGroupUpdate
    | { Type: "PlayQueue" } & PlayQueueUpdateGroupUpdate
    | { Type: "StateUpdate" } & GroupStateUpdateGroupUpdate
    | { Type: "UserJoined" } & StringGroupUpdate
    | { Type: "UserLeft" } & StringGroupUpdate