RoleInfo type with permissions as $ReadOnlyArray<string> instead of ThreadRolePermissionsBlob.
Next diffs:
- Introduce MinimallyEncodedThreadCurrentUserInfo
- Introduce MinimallyEncodedRawThreadInfo
- Higher level utilities for translating back/forth from RawThreadInfo <=> MinimallyEncodedRawThreadInfo. Found this to be cleaner API than encoding/decoding RawThreadInfo.currentUser.permissions and RawThreadInfo.members[memberID].permissions "manually" a bunch of different places.
- Native refactoring + migrations
- Web refactoring
- Flipping the switch