diff --git a/keyserver/src/creators/update-creator.js b/keyserver/src/creators/update-creator.js
--- a/keyserver/src/creators/update-creator.js
+++ b/keyserver/src/creators/update-creator.js
@@ -31,7 +31,7 @@
   redisMessageTypes,
   type NewUpdatesRedisMessage,
 } from 'lib/types/redis-types.js';
-import type { RawThreadInfos } from 'lib/types/thread-types';
+import type { LegacyRawThreadInfos } from 'lib/types/thread-types';
 import {
   type ServerUpdateInfo,
   type UpdateData,
@@ -92,7 +92,7 @@
       viewer: Viewer,
       calendarQuery: ?CalendarQuery,
       updatesForCurrentSession?: UpdatesForCurrentSession,
-      threadInfos: RawThreadInfos,
+      threadInfos: LegacyRawThreadInfos,
     };
 const defaultUpdateCreationResult = { viewerUpdates: [], userInfos: {} };
 const sortFunction = (
diff --git a/keyserver/src/fetchers/thread-fetchers.js b/keyserver/src/fetchers/thread-fetchers.js
--- a/keyserver/src/fetchers/thread-fetchers.js
+++ b/keyserver/src/fetchers/thread-fetchers.js
@@ -14,9 +14,9 @@
 import type { RawMessageInfo, MessageInfo } from 'lib/types/message-types.js';
 import { threadTypes, type ThreadType } from 'lib/types/thread-types-enum.js';
 import {
-  type RawThreadInfos,
+  type LegacyRawThreadInfos,
   type ServerThreadInfo,
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
 } from 'lib/types/thread-types.js';
 import { ServerError } from 'lib/utils/errors.js';
 
@@ -245,7 +245,7 @@
 }
 
 export type FetchThreadInfosResult = {
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
 };
 
 async function fetchThreadInfos(
@@ -278,7 +278,7 @@
     native: 285,
   });
 
-  const threadInfos: { [string]: RawThreadInfo } = {};
+  const threadInfos: { [string]: LegacyRawThreadInfo } = {};
   for (const threadID in serverResult.threadInfos) {
     const serverThreadInfo = serverResult.threadInfos[threadID];
     const threadInfo = rawThreadInfoFromServerThreadInfo(
diff --git a/keyserver/src/responders/thread-responders.js b/keyserver/src/responders/thread-responders.js
--- a/keyserver/src/responders/thread-responders.js
+++ b/keyserver/src/responders/thread-responders.js
@@ -30,7 +30,7 @@
   type RoleModificationResult,
   type RoleDeletionRequest,
   type RoleDeletionResult,
-  rawThreadInfoValidator,
+  legacyRawThreadInfoValidator,
 } from 'lib/types/thread-types.js';
 import { serverUpdateInfoValidator } from 'lib/types/update-types.js';
 import { userInfosValidator } from 'lib/types/user-types.js';
@@ -289,7 +289,7 @@
 
 export const roleModificationResultValidator: TInterface<RoleModificationResult> =
   tShape<RoleModificationResult>({
-    threadInfo: t.maybe(rawThreadInfoValidator),
+    threadInfo: t.maybe(legacyRawThreadInfoValidator),
     updatesResult: tShape({
       newUpdates: t.list(serverUpdateInfoValidator),
     }),
@@ -310,7 +310,7 @@
 
 export const roleDeletionResultValidator: TInterface<RoleDeletionResult> =
   tShape<RoleDeletionResult>({
-    threadInfo: t.maybe(rawThreadInfoValidator),
+    threadInfo: t.maybe(legacyRawThreadInfoValidator),
     updatesResult: tShape({
       newUpdates: t.list(serverUpdateInfoValidator),
     }),
diff --git a/keyserver/src/responders/user-responders.js b/keyserver/src/responders/user-responders.js
--- a/keyserver/src/responders/user-responders.js
+++ b/keyserver/src/responders/user-responders.js
@@ -61,7 +61,7 @@
   type SubscriptionUpdateResponse,
   threadSubscriptionValidator,
 } from 'lib/types/subscription-types.js';
-import { rawThreadInfoValidator } from 'lib/types/thread-types.js';
+import { legacyRawThreadInfoValidator } from 'lib/types/thread-types.js';
 import { createUpdatesResultValidator } from 'lib/types/update-types.js';
 import {
   type PasswordUpdate,
@@ -253,7 +253,7 @@
     rawMessageInfos: t.list(rawMessageInfoValidator),
     currentUserInfo: loggedInUserInfoValidator,
     cookieChange: tShape({
-      threadInfos: t.dict(tID, rawThreadInfoValidator),
+      threadInfos: t.dict(tID, legacyRawThreadInfoValidator),
       userInfos: t.list(userInfoValidator),
     }),
   });
@@ -437,7 +437,7 @@
     rawEntryInfos: t.maybe(t.list(rawEntryInfoValidator)),
     serverTime: t.Number,
     cookieChange: tShape({
-      threadInfos: t.dict(tID, rawThreadInfoValidator),
+      threadInfos: t.dict(tID, legacyRawThreadInfoValidator),
       userInfos: t.list(userInfoValidator),
     }),
     notAcknowledgedPolicies: t.maybe(t.list<TEnums>(policyTypeValidator)),
diff --git a/keyserver/src/scripts/generate-converter-from-validator.js b/keyserver/src/scripts/generate-converter-from-validator.js
--- a/keyserver/src/scripts/generate-converter-from-validator.js
+++ b/keyserver/src/scripts/generate-converter-from-validator.js
@@ -7,7 +7,7 @@
   mediaValidator,
 } from 'lib/types/media-types.js';
 import { threadPermissionInfoValidator } from 'lib/types/thread-permission-types.js';
-import { rawThreadInfoValidator } from 'lib/types/thread-types.js';
+import { legacyRawThreadInfoValidator } from 'lib/types/thread-types.js';
 import { ashoatKeyserverID, tID } from 'lib/utils/validation-utils.js';
 
 import { main } from './utils.js';
@@ -213,7 +213,7 @@
 }
 
 // Input arguments:
-const validator = rawThreadInfoValidator;
+const validator = legacyRawThreadInfoValidator;
 const typeName = 'RawThreadInfo';
 const validatorToBeConverted = tID;
 const conversionExpressionString = (inputName: string) =>
diff --git a/keyserver/src/shared/state-sync/threads-state-sync-spec.js b/keyserver/src/shared/state-sync/threads-state-sync-spec.js
--- a/keyserver/src/shared/state-sync/threads-state-sync-spec.js
+++ b/keyserver/src/shared/state-sync/threads-state-sync-spec.js
@@ -3,9 +3,9 @@
 import { threadsStateSyncSpec as libSpec } from 'lib/shared/state-sync/threads-state-sync-spec.js';
 import type { ClientThreadInconsistencyReportCreationRequest } from 'lib/types/report-types.js';
 import {
-  type RawThreadInfos,
-  type RawThreadInfo,
-  rawThreadInfoValidator,
+  type LegacyRawThreadInfos,
+  type LegacyRawThreadInfo,
+  legacyRawThreadInfoValidator,
 } from 'lib/types/thread-types.js';
 import { hash, combineUnorderedHashes, values } from 'lib/utils/objects.js';
 
@@ -15,9 +15,9 @@
 import { validateOutput } from '../../utils/validation-utils.js';
 
 export const threadsStateSyncSpec: ServerStateSyncSpec<
-  RawThreadInfos,
-  RawThreadInfos,
-  RawThreadInfo,
+  LegacyRawThreadInfos,
+  LegacyRawThreadInfos,
+  LegacyRawThreadInfo,
   $ReadOnlyArray<ClientThreadInconsistencyReportCreationRequest>,
 > = Object.freeze({
   fetch,
@@ -40,10 +40,10 @@
   return result.threadInfos;
 }
 
-function getServerInfosHash(infos: RawThreadInfos) {
+function getServerInfosHash(infos: LegacyRawThreadInfos) {
   return combineUnorderedHashes(values(infos).map(getServerInfoHash));
 }
 
-function getServerInfoHash(info: RawThreadInfo) {
-  return hash(validateOutput(null, rawThreadInfoValidator, info));
+function getServerInfoHash(info: LegacyRawThreadInfo) {
+  return hash(validateOutput(null, legacyRawThreadInfoValidator, info));
 }
diff --git a/keyserver/src/socket/socket.js b/keyserver/src/socket/socket.js
--- a/keyserver/src/socket/socket.js
+++ b/keyserver/src/socket/socket.js
@@ -41,7 +41,7 @@
   serverSocketMessageTypes,
   serverServerSocketMessageValidator,
 } from 'lib/types/socket-types.js';
-import type { RawThreadInfos } from 'lib/types/thread-types.js';
+import type { LegacyRawThreadInfos } from 'lib/types/thread-types.js';
 import type { UserInfo, CurrentUserInfo } from 'lib/types/user-types.js';
 import { ServerError } from 'lib/utils/errors.js';
 import { values } from 'lib/utils/objects.js';
@@ -515,7 +515,7 @@
       );
       // We have a type error here because Flow doesn't know spec.hashKey
       const castPromises: {
-        +threadInfos: Promise<RawThreadInfos>,
+        +threadInfos: Promise<LegacyRawThreadInfos>,
         +currentUserInfo: Promise<CurrentUserInfo>,
         +entryInfos: Promise<$ReadOnlyArray<RawEntryInfo>>,
         +userInfos: Promise<$ReadOnlyArray<UserInfo>>,
diff --git a/lib/actions/user-actions.js b/lib/actions/user-actions.js
--- a/lib/actions/user-actions.js
+++ b/lib/actions/user-actions.js
@@ -38,7 +38,7 @@
   SubscriptionUpdateRequest,
   SubscriptionUpdateResult,
 } from '../types/subscription-types.js';
-import type { RawThreadInfos } from '../types/thread-types';
+import type { LegacyRawThreadInfos } from '../types/thread-types';
 import type {
   UserInfo,
   PasswordUpdate,
@@ -264,7 +264,7 @@
 
     const userInfosArrays = [];
 
-    let threadInfos: RawThreadInfos = {};
+    let threadInfos: LegacyRawThreadInfos = {};
     const calendarResult: WritableCalendarResult = {
       calendarQuery: logInInfo.calendarQuery,
       rawEntryInfos: [],
diff --git a/lib/hooks/child-threads.js b/lib/hooks/child-threads.js
--- a/lib/hooks/child-threads.js
+++ b/lib/hooks/child-threads.js
@@ -18,7 +18,7 @@
   MinimallyEncodedThreadInfo,
   MinimallyEncodedRawThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
-import type { ThreadInfo, RawThreadInfo } from '../types/thread-types.js';
+import type { ThreadInfo, LegacyRawThreadInfo } from '../types/thread-types.js';
 import { useDispatchActionPromise } from '../utils/action-utils.js';
 import { useSelector } from '../utils/redux-utils.js';
 
@@ -47,7 +47,7 @@
     (
       thread: ?(
         | ThreadInfo
-        | RawThreadInfo
+        | LegacyRawThreadInfo
         | MinimallyEncodedThreadInfo
         | MinimallyEncodedRawThreadInfo
       ),
diff --git a/lib/hooks/search-threads.js b/lib/hooks/search-threads.js
--- a/lib/hooks/search-threads.js
+++ b/lib/hooks/search-threads.js
@@ -17,7 +17,7 @@
 import type {
   SidebarInfo,
   ThreadInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
 } from '../types/thread-types.js';
 import { useSelector } from '../utils/redux-utils.js';
 
@@ -110,7 +110,7 @@
     (
       thread: ?(
         | ThreadInfo
-        | RawThreadInfo
+        | LegacyRawThreadInfo
         | MinimallyEncodedThreadInfo
         | MinimallyEncodedRawThreadInfo
       ),
diff --git a/lib/ops/thread-store-ops.js b/lib/ops/thread-store-ops.js
--- a/lib/ops/thread-store-ops.js
+++ b/lib/ops/thread-store-ops.js
@@ -3,8 +3,8 @@
 import { type BaseStoreOpsHandlers } from './base-ops.js';
 import type {
   ClientDBThreadInfo,
-  RawThreadInfo,
-  RawThreadInfos,
+  LegacyRawThreadInfo,
+  LegacyRawThreadInfos,
   ThreadStore,
 } from '../types/thread-types.js';
 import {
@@ -23,7 +23,7 @@
 
 export type ReplaceThreadOperation = {
   +type: 'replace',
-  +payload: { +id: string, +threadInfo: RawThreadInfo },
+  +payload: { +id: string, +threadInfo: LegacyRawThreadInfo },
 };
 
 export type ThreadStoreOperation =
@@ -45,7 +45,7 @@
   ThreadStore,
   ThreadStoreOperation,
   ClientDBThreadStoreOperation,
-  RawThreadInfos,
+  LegacyRawThreadInfos,
   ClientDBThreadInfo,
 > = {
   processStoreOperations(
@@ -87,7 +87,7 @@
   },
 
   translateClientDBData(data: $ReadOnlyArray<ClientDBThreadInfo>): {
-    +[id: string]: RawThreadInfo,
+    +[id: string]: LegacyRawThreadInfo,
   } {
     return Object.fromEntries(
       data.map((dbThreadInfo: ClientDBThreadInfo) => [
diff --git a/lib/permissions/minimally-encoded-thread-permissions-test-data.js b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
--- a/lib/permissions/minimally-encoded-thread-permissions-test-data.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
@@ -2,9 +2,9 @@
 
 import type { MinimallyEncodedRawThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
-import type { RawThreadInfo } from '../types/thread-types.js';
+import type { LegacyRawThreadInfo } from '../types/thread-types.js';
 
-const exampleRawThreadInfoA: RawThreadInfo = {
+const exampleRawThreadInfoA: LegacyRawThreadInfo = {
   id: '85171',
   type: threadTypes.PERSONAL,
   name: '',
@@ -370,7 +370,7 @@
   pinnedCount: 0,
 };
 
-const expectedDecodedExampleRawThreadInfoA: RawThreadInfo = {
+const expectedDecodedExampleRawThreadInfoA: LegacyRawThreadInfo = {
   id: '85171',
   type: threadTypes.PERSONAL,
   name: '',
diff --git a/lib/permissions/minimally-encoded-thread-permissions-validators.js b/lib/permissions/minimally-encoded-thread-permissions-validators.js
--- a/lib/permissions/minimally-encoded-thread-permissions-validators.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-validators.js
@@ -16,7 +16,7 @@
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import {
   legacyMemberInfoValidator,
-  rawThreadInfoValidator,
+  legacyRawThreadInfoValidator,
   legacyRoleInfoValidator,
   threadCurrentUserInfoValidator,
   threadInfoValidator,
@@ -68,7 +68,7 @@
 
 const minimallyEncodedRawThreadInfoValidator: TInterface<MinimallyEncodedRawThreadInfo> =
   tShape<MinimallyEncodedRawThreadInfo>({
-    ...rawThreadInfoValidator.meta.props,
+    ...legacyRawThreadInfoValidator.meta.props,
     minimallyEncoded: tBool(true),
     members: t.list(minimallyEncodedMemberInfoValidator),
     roles: t.dict(tID, minimallyEncodedRoleInfoValidator),
diff --git a/lib/reducers/calendar-filters-reducer.js b/lib/reducers/calendar-filters-reducer.js
--- a/lib/reducers/calendar-filters-reducer.js
+++ b/lib/reducers/calendar-filters-reducer.js
@@ -37,7 +37,10 @@
   fullStateSyncActionType,
   incrementalStateSyncActionType,
 } from '../types/socket-types.js';
-import type { RawThreadInfos, ThreadStore } from '../types/thread-types.js';
+import type {
+  LegacyRawThreadInfos,
+  ThreadStore,
+} from '../types/thread-types.js';
 import {
   type ClientUpdateInfo,
   processUpdatesActionType,
@@ -158,7 +161,7 @@
 
 function removeDeletedThreadIDsFromFilterList(
   state: $ReadOnlyArray<CalendarFilter>,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): $ReadOnlyArray<CalendarFilter> {
   const currentlyFilteredIDs = filteredThreadIDs(state);
   if (!currentlyFilteredIDs) {
diff --git a/lib/reducers/entry-reducer.js b/lib/reducers/entry-reducer.js
--- a/lib/reducers/entry-reducer.js
+++ b/lib/reducers/entry-reducer.js
@@ -54,7 +54,7 @@
   fullStateSyncActionType,
   incrementalStateSyncActionType,
 } from '../types/socket-types.js';
-import { type RawThreadInfos } from '../types/thread-types.js';
+import { type LegacyRawThreadInfos } from '../types/thread-types.js';
 import {
   type ClientUpdateInfo,
   processUpdatesActionType,
@@ -90,7 +90,7 @@
   currentEntryInfos: { +[id: string]: RawEntryInfo },
   currentDaysToEntries: ?{ +[day: string]: string[] },
   newEntryInfos: $ReadOnlyArray<RawEntryInfo>,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ) {
   const mergedEntryInfos: { [string]: RawEntryInfo } = {};
   let someEntryUpdated = false;
@@ -163,7 +163,7 @@
 function reduceEntryInfos(
   entryStore: EntryStore,
   action: BaseAction,
-  newThreadInfos: RawThreadInfos,
+  newThreadInfos: LegacyRawThreadInfos,
 ): [EntryStore, $ReadOnlyArray<ClientEntryInconsistencyReportCreationRequest>] {
   const { entryInfos, daysToEntries, lastUserInteractionCalendar } = entryStore;
   if (
diff --git a/lib/reducers/integrity-reducer.js b/lib/reducers/integrity-reducer.js
--- a/lib/reducers/integrity-reducer.js
+++ b/lib/reducers/integrity-reducer.js
@@ -11,13 +11,13 @@
 import type { IntegrityStore } from '../types/integrity-types';
 import type { BaseAction } from '../types/redux-types.js';
 import { fullStateSyncActionType } from '../types/socket-types.js';
-import type { RawThreadInfo } from '../types/thread-types.js';
+import type { LegacyRawThreadInfo } from '../types/thread-types.js';
 import { hash } from '../utils/objects.js';
 
 function reduceIntegrityStore(
   state: IntegrityStore,
   action: BaseAction,
-  threadInfos: { +[string]: RawThreadInfo },
+  threadInfos: { +[string]: LegacyRawThreadInfo },
   threadStoreOperations: $ReadOnlyArray<ThreadStoreOperation>,
 ): IntegrityStore {
   if (
diff --git a/lib/reducers/message-reducer.js b/lib/reducers/message-reducer.js
--- a/lib/reducers/message-reducer.js
+++ b/lib/reducers/message-reducer.js
@@ -94,7 +94,10 @@
   incrementalStateSyncActionType,
 } from '../types/socket-types.js';
 import { threadPermissions } from '../types/thread-permission-types.js';
-import type { RawThreadInfo, RawThreadInfos } from '../types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  LegacyRawThreadInfos,
+} from '../types/thread-types.js';
 import {
   type ClientUpdateInfo,
   processUpdatesActionType,
@@ -122,7 +125,7 @@
 
 function isThreadWatched(
   threadID: string,
-  threadInfo: ?RawThreadInfo,
+  threadInfo: ?LegacyRawThreadInfo,
   watchedIDs: $ReadOnlyArray<string>,
 ) {
   return (
@@ -146,7 +149,7 @@
   messageInfos: $ReadOnlyArray<RawMessageInfo>,
   truncationStatus: { [threadID: string]: MessageTruncationStatus },
   currentAsOf: { +[keyserverID: string]: number },
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): FreshMessageStoreResult {
   const unshimmed = unshimMessageInfos(messageInfos);
   const orderedMessageInfos = sortMessageInfoList(unshimmed);
@@ -212,7 +215,7 @@
 
 function reassignMessagesToRealizedThreads(
   messageStore: MessageStore,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): ReassignmentResult {
   const pendingToRealizedThreadIDs =
     pendingToRealizedThreadIDsSelector(threadInfos);
@@ -305,7 +308,7 @@
   oldMessageStore: MessageStore,
   newMessageInfos: $ReadOnlyArray<RawMessageInfo>,
   truncationStatus: { +[threadID: string]: MessageTruncationStatus },
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): MergeNewMessagesResult {
   const {
     messageStoreOperations: updateWithLatestThreadInfosOps,
@@ -629,7 +632,7 @@
 };
 function updateMessageStoreWithLatestThreadInfos(
   messageStore: MessageStore,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): UpdateMessageStoreWithLatestThreadInfosResult {
   const messageStoreOperations: MessageStoreOperation[] = [];
   const {
@@ -697,7 +700,7 @@
 
 function ensureRealizedThreadIDIsUsedWhenPossible<T: RawMessageInfo>(
   payload: T,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): T {
   const pendingToRealizedThreadIDs =
     pendingToRealizedThreadIDsSelector(threadInfos);
@@ -717,7 +720,7 @@
 function reduceMessageStore(
   messageStore: MessageStore,
   action: BaseAction,
-  newThreadInfos: RawThreadInfos,
+  newThreadInfos: LegacyRawThreadInfos,
 ): ReduceMessageStoreResult {
   if (
     action.type === logInActionTypes.success ||
diff --git a/lib/reducers/thread-reducer.js b/lib/reducers/thread-reducer.js
--- a/lib/reducers/thread-reducer.js
+++ b/lib/reducers/thread-reducer.js
@@ -42,8 +42,8 @@
   incrementalStateSyncActionType,
 } from '../types/socket-types.js';
 import type {
-  RawThreadInfo,
-  RawThreadInfos,
+  LegacyRawThreadInfo,
+  LegacyRawThreadInfos,
   ThreadStore,
 } from '../types/thread-types.js';
 import {
@@ -56,7 +56,7 @@
   threadStoreOpsHandlers;
 
 function generateOpsForThreadUpdates(
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
   payload: {
     +updatesResult: { +newUpdates: $ReadOnlyArray<ClientUpdateInfo>, ... },
     ...
@@ -202,7 +202,7 @@
         threadIDToMostRecentTime.set(messageInfo.threadID, messageInfo.time);
       }
     }
-    const changedThreadInfos: { [string]: RawThreadInfo } = {};
+    const changedThreadInfos: { [string]: LegacyRawThreadInfo } = {};
     for (const [threadID, mostRecentTime] of threadIDToMostRecentTime) {
       const threadInfo = state.threadInfos[threadID];
       if (
@@ -297,7 +297,7 @@
       threadStoreOperations,
     };
   } else if (action.type === updateActivityActionTypes.success) {
-    const updatedThreadInfos: { [string]: RawThreadInfo } = {};
+    const updatedThreadInfos: { [string]: LegacyRawThreadInfo } = {};
     for (const setToUnread of action.payload.result.unfocusedToUnread) {
       const threadInfo = state.threadInfos[setToUnread];
       if (threadInfo && !threadInfo.currentUser.unread) {
diff --git a/lib/selectors/chat-selectors.js b/lib/selectors/chat-selectors.js
--- a/lib/selectors/chat-selectors.js
+++ b/lib/selectors/chat-selectors.js
@@ -43,7 +43,7 @@
 import { threadTypes } from '../types/thread-types-enum.js';
 import {
   type ThreadInfo,
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
   type SidebarInfo,
   maxReadSidebars,
   maxUnreadSidebars,
@@ -234,7 +234,7 @@
   filterFunction: (
     threadInfo: ?(
       | ThreadInfo
-      | RawThreadInfo
+      | LegacyRawThreadInfo
       | MinimallyEncodedThreadInfo
       | MinimallyEncodedRawThreadInfo
     ),
@@ -266,7 +266,7 @@
   filterFunction: (
     threadInfo: ?(
       | ThreadInfo
-      | RawThreadInfo
+      | LegacyRawThreadInfo
       | MinimallyEncodedThreadInfo
       | MinimallyEncodedRawThreadInfo
     ),
diff --git a/lib/selectors/nav-selectors.js b/lib/selectors/nav-selectors.js
--- a/lib/selectors/nav-selectors.js
+++ b/lib/selectors/nav-selectors.js
@@ -18,7 +18,7 @@
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import type { BaseNavInfo } from '../types/nav-types.js';
 import type { BaseAppState } from '../types/redux-types.js';
-import type { RawThreadInfo, ThreadInfo } from '../types/thread-types.js';
+import type { LegacyRawThreadInfo, ThreadInfo } from '../types/thread-types.js';
 import type { UserInfo } from '../types/user-types.js';
 import { getConfig } from '../utils/config.js';
 import { values } from '../utils/objects.js';
@@ -84,7 +84,7 @@
 
 function useThreadSearchIndex(
   threadInfos: $ReadOnlyArray<
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/lib/selectors/thread-selectors.js b/lib/selectors/thread-selectors.js
--- a/lib/selectors/thread-selectors.js
+++ b/lib/selectors/thread-selectors.js
@@ -49,9 +49,9 @@
 } from '../types/thread-types-enum.js';
 import {
   type ThreadInfo,
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
   type SidebarInfo,
-  type RawThreadInfos,
+  type LegacyRawThreadInfos,
   type RelativeMemberInfo,
 } from '../types/thread-types.js';
 import { dateString, dateFromString } from '../utils/date-utils.js';
@@ -275,7 +275,7 @@
 
 const unreadCount: (state: BaseAppState<>) => number = createSelector(
   (state: BaseAppState<>) => state.threadStore.threadInfos,
-  (threadInfos: RawThreadInfos): number =>
+  (threadInfos: LegacyRawThreadInfos): number =>
     values(threadInfos).filter(
       threadInfo =>
         threadInHomeChatList(threadInfo) && threadInfo.currentUser.unread,
@@ -284,7 +284,7 @@
 
 const unreadBackgroundCount: (state: BaseAppState<>) => number = createSelector(
   (state: BaseAppState<>) => state.threadStore.threadInfos,
-  (threadInfos: RawThreadInfos): number =>
+  (threadInfos: LegacyRawThreadInfos): number =>
     values(threadInfos).filter(
       threadInfo =>
         threadInBackgroundChatList(threadInfo) && threadInfo.currentUser.unread,
@@ -323,7 +323,7 @@
     (state: BaseAppState<>) => state.threadStore.threadInfos[threadID],
     relativeMemberInfoSelectorForMembersOfThread(threadID),
     (
-      threadInfo: ?RawThreadInfo,
+      threadInfo: ?LegacyRawThreadInfo,
       members: $ReadOnlyArray<RelativeMemberInfo>,
     ): boolean => {
       if (!threadInfo) {
@@ -357,7 +357,7 @@
 
 function mostRecentlyReadThread(
   messageStore: MessageStore,
-  threadInfos: RawThreadInfos,
+  threadInfos: LegacyRawThreadInfos,
 ): ?string {
   let mostRecent = null;
   for (const threadID in threadInfos) {
@@ -399,7 +399,7 @@
   (state: BaseAppState<>) => state.threadStore.threadInfos,
   threadInfoSelector,
   (
-    rawThreadInfos: RawThreadInfos,
+    rawThreadInfos: LegacyRawThreadInfos,
     threadInfos: { +[id: string]: ThreadInfo },
   ) => {
     const pendingToRealizedThreadIDs =
@@ -415,10 +415,10 @@
   },
 );
 const pendingToRealizedThreadIDsSelector: (
-  rawThreadInfos: RawThreadInfos,
+  rawThreadInfos: LegacyRawThreadInfos,
 ) => $ReadOnlyMap<string, string> = createSelector(
-  (rawThreadInfos: RawThreadInfos) => rawThreadInfos,
-  (rawThreadInfos: RawThreadInfos) => {
+  (rawThreadInfos: LegacyRawThreadInfos) => rawThreadInfos,
+  (rawThreadInfos: LegacyRawThreadInfos) => {
     const result = new Map<string, string>();
     for (const threadID in rawThreadInfos) {
       const rawThreadInfo = rawThreadInfos[threadID];
diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js
--- a/lib/selectors/user-selectors.js
+++ b/lib/selectors/user-selectors.js
@@ -15,9 +15,9 @@
 import { userRelationshipStatus } from '../types/relationship-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
 import {
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
   type LegacyRelativeMemberInfo,
-  type RawThreadInfos,
+  type LegacyRawThreadInfos,
   type RelativeMemberInfo,
 } from '../types/thread-types.js';
 import type {
@@ -55,7 +55,7 @@
 }
 
 function getRelativeMemberInfos(
-  threadInfo: ?RawThreadInfo,
+  threadInfo: ?LegacyRawThreadInfo,
   currentUserID: ?string,
   userInfos: UserInfos,
 ): $ReadOnlyArray<LegacyRelativeMemberInfo> {
@@ -210,7 +210,7 @@
 ) => $ReadOnlySet<string> = createSelector(
   (state: BaseAppState<>) => state.currentUserInfo && state.currentUserInfo.id,
   (state: BaseAppState<>) => state.threadStore.threadInfos,
-  (viewerID: ?string, threadInfos: RawThreadInfos) => {
+  (viewerID: ?string, threadInfos: LegacyRawThreadInfos) => {
     const personalThreadMembers = new Set<string>();
 
     for (const threadID in threadInfos) {
diff --git a/lib/shared/avatar-utils.js b/lib/shared/avatar-utils.js
--- a/lib/shared/avatar-utils.js
+++ b/lib/shared/avatar-utils.js
@@ -21,7 +21,10 @@
   MinimallyEncodedThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from '../types/thread-types-enum.js';
-import { type RawThreadInfo, type ThreadInfo } from '../types/thread-types.js';
+import {
+  type LegacyRawThreadInfo,
+  type ThreadInfo,
+} from '../types/thread-types.js';
 import type { UserInfos } from '../types/user-types.js';
 import { useSelector } from '../utils/redux-utils.js';
 import { ashoatKeyserverID } from '../utils/validation-utils.js';
@@ -275,7 +278,7 @@
 
 function getUserAvatarForThread(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -305,7 +308,7 @@
 
 function getAvatarForThread(
   thread:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedThreadInfo
     | MinimallyEncodedRawThreadInfo,
@@ -326,7 +329,7 @@
 
 function useAvatarForThread(
   thread:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/lib/shared/message-utils.js b/lib/shared/message-utils.js
--- a/lib/shared/message-utils.js
+++ b/lib/shared/message-utils.js
@@ -45,7 +45,7 @@
   MinimallyEncodedRawThreadInfo,
   MinimallyEncodedThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
-import type { RawThreadInfo, ThreadInfo } from '../types/thread-types.js';
+import type { LegacyRawThreadInfo, ThreadInfo } from '../types/thread-types.js';
 import type { UserInfos } from '../types/user-types.js';
 import { extractKeyserverIDFromID } from '../utils/action-utils.js';
 import {
@@ -684,7 +684,7 @@
 function isInvalidPinSourceForThread(
   messageInfo: RawMessageInfo | MessageInfo,
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/lib/shared/state-sync/threads-state-sync-spec.js b/lib/shared/state-sync/threads-state-sync-spec.js
--- a/lib/shared/state-sync/threads-state-sync-spec.js
+++ b/lib/shared/state-sync/threads-state-sync-spec.js
@@ -11,8 +11,8 @@
 } from '../../types/report-types.js';
 import type { ProcessServerRequestAction } from '../../types/request-types.js';
 import {
-  type RawThreadInfos,
-  type RawThreadInfo,
+  type LegacyRawThreadInfos,
+  type LegacyRawThreadInfo,
 } from '../../types/thread-types.js';
 import { actionLogger } from '../../utils/action-logger.js';
 import { getConfig } from '../../utils/config.js';
@@ -24,8 +24,8 @@
 const selector: (
   state: AppState,
 ) => BoundStateSyncSpec<
-  RawThreadInfos,
-  RawThreadInfo,
+  LegacyRawThreadInfos,
+  LegacyRawThreadInfo,
   $ReadOnlyArray<ClientThreadInconsistencyReportCreationRequest>,
 > = createSelector(
   (state: AppState) => state.integrityStore.threadHashes,
@@ -43,8 +43,8 @@
 );
 
 export const threadsStateSyncSpec: StateSyncSpec<
-  RawThreadInfos,
-  RawThreadInfo,
+  LegacyRawThreadInfos,
+  LegacyRawThreadInfo,
   $ReadOnlyArray<ClientThreadInconsistencyReportCreationRequest>,
 > = Object.freeze({
   hashKey: 'threadInfos',
@@ -55,8 +55,8 @@
   },
   findStoreInconsistencies(
     action: ProcessServerRequestAction,
-    beforeStateCheck: RawThreadInfos,
-    afterStateCheck: RawThreadInfos,
+    beforeStateCheck: LegacyRawThreadInfos,
+    afterStateCheck: LegacyRawThreadInfos,
   ) {
     if (_isEqual(beforeStateCheck)(afterStateCheck)) {
       return emptyArray;
diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -80,7 +80,7 @@
   assertThreadType,
 } from '../types/thread-types-enum.js';
 import {
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
   type ThreadInfo,
   type MemberInfo,
   type ServerThreadInfo,
@@ -123,7 +123,7 @@
 function threadHasPermission(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -146,7 +146,7 @@
 function viewerIsMember(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -161,7 +161,7 @@
 function threadIsInHome(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -173,7 +173,7 @@
 function threadInChatList(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -187,7 +187,7 @@
 function threadIsTopLevel(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -198,7 +198,7 @@
 function threadIsChannel(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -209,7 +209,7 @@
 function threadIsSidebar(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -220,7 +220,7 @@
 function threadInBackgroundChatList(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -231,7 +231,7 @@
 function threadInHomeChatList(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -244,7 +244,7 @@
 function threadInFilterList(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -259,7 +259,7 @@
 function userIsMember(
   threadInfo: ?(
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo
   ),
@@ -294,7 +294,7 @@
 function threadMembersWithoutAddedAshoat<
   T:
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
 >(threadInfo: T): $PropertyType<T, 'members'> {
@@ -314,7 +314,7 @@
 
 function threadOrParentThreadIsGroupChat(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -333,7 +333,7 @@
 function getSingleOtherUser(
   threadInfo:
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
   viewerID: ?string,
@@ -815,7 +815,7 @@
   serverThreadInfo: ServerThreadInfo,
   viewerID: string,
   options?: RawThreadInfoOptions,
-): ?RawThreadInfo {
+): ?LegacyRawThreadInfo {
   const filterThreadEditAvatarPermission =
     options?.filterThreadEditAvatarPermission;
   const excludePinInfo = options?.excludePinInfo;
@@ -967,7 +967,7 @@
 }
 
 function threadInfoFromRawThreadInfo(
-  rawThreadInfo: RawThreadInfo,
+  rawThreadInfo: LegacyRawThreadInfo,
   viewerID: ?string,
   userInfos: UserInfos,
 ): ThreadInfo {
@@ -1016,7 +1016,7 @@
 }
 
 function getCurrentUser(
-  threadInfo: RawThreadInfo | ThreadInfo,
+  threadInfo: LegacyRawThreadInfo | ThreadInfo,
   viewerID: ?string,
   userInfos: UserInfos,
 ): ThreadCurrentUserInfo {
@@ -1057,7 +1057,7 @@
 
 function threadIsWithBlockedUserOnly(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1093,7 +1093,7 @@
 
 function threadFrozenDueToBlock(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1105,7 +1105,7 @@
 
 function threadFrozenDueToViewerBlock(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1126,7 +1126,7 @@
   memberInfo: RelativeMemberInfo | MemberInfo,
   threadInfo:
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
 ): boolean {
@@ -1152,7 +1152,7 @@
 
 function threadHasAdminRole(
   threadInfo: ?(
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | ServerThreadInfo
     | MinimallyEncodedRawThreadInfo
@@ -1167,7 +1167,7 @@
 
 function threadOrParentThreadHasAdminRole(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1422,7 +1422,7 @@
 function threadMemberHasPermission(
   threadInfo:
     | ServerThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1508,7 +1508,7 @@
 function getContainingThreadID(
   parentThreadInfo:
     | ?ServerThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1529,7 +1529,7 @@
 function getCommunity(
   parentThreadInfo:
     | ?ServerThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1756,7 +1756,7 @@
 
 function threadInfoInsideCommunity(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1838,7 +1838,7 @@
 
 function communityOrThreadNoun(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
@@ -1850,7 +1850,7 @@
 
 function getThreadsToDeleteText(
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/lib/shared/updates/delete-account-spec.js b/lib/shared/updates/delete-account-spec.js
--- a/lib/shared/updates/delete-account-spec.js
+++ b/lib/shared/updates/delete-account-spec.js
@@ -3,7 +3,7 @@
 import t from 'tcomb';
 
 import type { UpdateSpec } from './update-spec.js';
-import type { RawThreadInfos } from '../../types/thread-types.js';
+import type { LegacyRawThreadInfos } from '../../types/thread-types.js';
 import { updateTypes } from '../../types/update-types-enum.js';
 import type {
   AccountDeletionRawUpdateInfo,
@@ -19,7 +19,7 @@
   AccountDeletionUpdateData,
 > = Object.freeze({
   generateOpsForThreadUpdates(
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: AccountDeletionUpdateInfo,
   ) {
     const operations = [];
diff --git a/lib/shared/updates/delete-thread-spec.js b/lib/shared/updates/delete-thread-spec.js
--- a/lib/shared/updates/delete-thread-spec.js
+++ b/lib/shared/updates/delete-thread-spec.js
@@ -3,7 +3,7 @@
 import t from 'tcomb';
 
 import type { UpdateSpec } from './update-spec.js';
-import type { RawThreadInfos } from '../../types/thread-types.js';
+import type { LegacyRawThreadInfos } from '../../types/thread-types.js';
 import { updateTypes } from '../../types/update-types-enum.js';
 import type {
   ThreadDeletionRawUpdateInfo,
@@ -18,7 +18,7 @@
   ThreadDeletionUpdateData,
 > = Object.freeze({
   generateOpsForThreadUpdates(
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: ThreadDeletionUpdateInfo,
   ) {
     if (storeThreadInfos[update.threadID]) {
diff --git a/lib/shared/updates/join-thread-spec.js b/lib/shared/updates/join-thread-spec.js
--- a/lib/shared/updates/join-thread-spec.js
+++ b/lib/shared/updates/join-thread-spec.js
@@ -18,8 +18,8 @@
   rawMessageInfoValidator,
 } from '../../types/message-types.js';
 import {
-  type RawThreadInfos,
-  rawThreadInfoValidator,
+  type LegacyRawThreadInfos,
+  legacyRawThreadInfoValidator,
 } from '../../types/thread-types.js';
 import { updateTypes } from '../../types/update-types-enum.js';
 import type {
@@ -37,7 +37,7 @@
   ThreadJoinUpdateData,
 > = Object.freeze({
   generateOpsForThreadUpdates(
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: ThreadJoinUpdateInfo,
   ) {
     if (_isEqual(storeThreadInfos[update.threadInfo.id])(update.threadInfo)) {
@@ -171,7 +171,7 @@
     type: tNumber(updateTypes.JOIN_THREAD),
     id: t.String,
     time: t.Number,
-    threadInfo: rawThreadInfoValidator,
+    threadInfo: legacyRawThreadInfoValidator,
     rawMessageInfos: t.list(rawMessageInfoValidator),
     truncationStatus: messageTruncationStatusValidator,
     rawEntryInfos: t.list(rawEntryInfoValidator),
diff --git a/lib/shared/updates/update-spec.js b/lib/shared/updates/update-spec.js
--- a/lib/shared/updates/update-spec.js
+++ b/lib/shared/updates/update-spec.js
@@ -14,7 +14,7 @@
   MessageTruncationStatuses,
   FetchMessageInfosResult,
 } from '../../types/message-types.js';
-import type { RawThreadInfos } from '../../types/thread-types.js';
+import type { LegacyRawThreadInfos } from '../../types/thread-types.js';
 import type { UpdateType } from '../../types/update-types-enum.js';
 import type {
   ClientUpdateInfo,
@@ -28,7 +28,7 @@
 } from '../../types/user-types.js';
 
 export type UpdateInfosRawData = {
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
   +messageInfosResult: ?FetchMessageInfosResult,
   +calendarResult: ?FetchEntryInfosBase,
   +entryInfosResult: ?RawEntryInfos,
@@ -54,7 +54,7 @@
   Data: UpdateData,
 > = {
   +generateOpsForThreadUpdates?: (
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: UpdateInfo,
   ) => ?$ReadOnlyArray<ThreadStoreOperation>,
   +mergeEntryInfos?: (
diff --git a/lib/shared/updates/update-thread-read-status-spec.js b/lib/shared/updates/update-thread-read-status-spec.js
--- a/lib/shared/updates/update-thread-read-status-spec.js
+++ b/lib/shared/updates/update-thread-read-status-spec.js
@@ -4,8 +4,8 @@
 
 import type { UpdateSpec } from './update-spec.js';
 import type {
-  RawThreadInfo,
-  RawThreadInfos,
+  LegacyRawThreadInfo,
+  LegacyRawThreadInfos,
 } from '../../types/thread-types.js';
 import { updateTypes } from '../../types/update-types-enum.js';
 import type {
@@ -21,10 +21,11 @@
   ThreadReadStatusUpdateData,
 > = Object.freeze({
   generateOpsForThreadUpdates(
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: ThreadReadStatusUpdateInfo,
   ) {
-    const storeThreadInfo: ?RawThreadInfo = storeThreadInfos[update.threadID];
+    const storeThreadInfo: ?LegacyRawThreadInfo =
+      storeThreadInfos[update.threadID];
     if (
       !storeThreadInfo ||
       storeThreadInfo.currentUser.unread === update.unread
diff --git a/lib/shared/updates/update-thread-spec.js b/lib/shared/updates/update-thread-spec.js
--- a/lib/shared/updates/update-thread-spec.js
+++ b/lib/shared/updates/update-thread-spec.js
@@ -5,8 +5,8 @@
 
 import type { UpdateInfoFromRawInfoParams, UpdateSpec } from './update-spec.js';
 import {
-  type RawThreadInfos,
-  rawThreadInfoValidator,
+  type LegacyRawThreadInfos,
+  legacyRawThreadInfoValidator,
 } from '../../types/thread-types.js';
 import { updateTypes } from '../../types/update-types-enum.js';
 import type {
@@ -23,7 +23,7 @@
   ThreadUpdateData,
 > = Object.freeze({
   generateOpsForThreadUpdates(
-    storeThreadInfos: RawThreadInfos,
+    storeThreadInfos: LegacyRawThreadInfos,
     update: ThreadUpdateInfo,
   ) {
     if (_isEqual(storeThreadInfos[update.threadInfo.id])(update.threadInfo)) {
@@ -114,6 +114,6 @@
     type: tNumber(updateTypes.UPDATE_THREAD),
     id: t.String,
     time: t.Number,
-    threadInfo: rawThreadInfoValidator,
+    threadInfo: legacyRawThreadInfoValidator,
   }),
 });
diff --git a/lib/shared/user-utils.js b/lib/shared/user-utils.js
--- a/lib/shared/user-utils.js
+++ b/lib/shared/user-utils.js
@@ -7,7 +7,7 @@
   MinimallyEncodedThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import type {
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   ServerThreadInfo,
   ThreadInfo,
 } from '../types/thread-types.js';
@@ -39,7 +39,7 @@
 function useKeyserverAdmin(
   community:
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ServerThreadInfo
     | MinimallyEncodedThreadInfo
     | MinimallyEncodedRawThreadInfo,
diff --git a/lib/types/account-types.js b/lib/types/account-types.js
--- a/lib/types/account-types.js
+++ b/lib/types/account-types.js
@@ -15,7 +15,7 @@
   type GenericMessagesResult,
 } from './message-types.js';
 import type { PreRequestUserState } from './session-types.js';
-import { type RawThreadInfos } from './thread-types.js';
+import { type LegacyRawThreadInfos } from './thread-types.js';
 import {
   type UserInfo,
   type LoggedOutUserInfo,
@@ -69,7 +69,7 @@
   rawMessageInfos: $ReadOnlyArray<RawMessageInfo>,
   currentUserInfo: LoggedInUserInfo,
   cookieChange: {
-    threadInfos: RawThreadInfos,
+    threadInfos: LegacyRawThreadInfos,
     userInfos: $ReadOnlyArray<UserInfo>,
   },
 };
@@ -77,7 +77,7 @@
 export type RegisterResult = {
   +currentUserInfo: LoggedInUserInfo,
   +rawMessageInfos: $ReadOnlyArray<RawMessageInfo>,
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
   +userInfos: $ReadOnlyArray<UserInfo>,
   +calendarQuery: CalendarQuery,
 };
@@ -142,14 +142,14 @@
   +rawEntryInfos?: ?$ReadOnlyArray<RawEntryInfo>,
   +serverTime: number,
   +cookieChange: {
-    +threadInfos: RawThreadInfos,
+    +threadInfos: LegacyRawThreadInfos,
     +userInfos: $ReadOnlyArray<UserInfo>,
   },
   +notAcknowledgedPolicies?: $ReadOnlyArray<PolicyType>,
 };
 
 export type LogInResult = {
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
   +currentUserInfo: LoggedInUserInfo,
   +messagesResult: GenericMessagesResult,
   +userInfos: $ReadOnlyArray<UserInfo>,
diff --git a/lib/types/minimally-encoded-thread-permissions-types.js b/lib/types/minimally-encoded-thread-permissions-types.js
--- a/lib/types/minimally-encoded-thread-permissions-types.js
+++ b/lib/types/minimally-encoded-thread-permissions-types.js
@@ -4,7 +4,7 @@
 
 import type {
   LegacyMemberInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   LegacyRelativeMemberInfo,
   LegacyRoleInfo,
   ThreadCurrentUserInfo,
@@ -122,7 +122,7 @@
 };
 
 export type MinimallyEncodedRawThreadInfo = $ReadOnly<{
-  ...RawThreadInfo,
+  ...LegacyRawThreadInfo,
   +minimallyEncoded: true,
   +members: $ReadOnlyArray<MinimallyEncodedMemberInfo>,
   +roles: { +[id: string]: MinimallyEncodedRoleInfo },
@@ -130,7 +130,7 @@
 }>;
 
 const minimallyEncodeRawThreadInfo = (
-  rawThreadInfo: RawThreadInfo,
+  rawThreadInfo: LegacyRawThreadInfo,
 ): MinimallyEncodedRawThreadInfo => {
   const { members, roles, currentUser, ...rest } = rawThreadInfo;
   return {
@@ -144,7 +144,7 @@
 
 const decodeMinimallyEncodedRawThreadInfo = (
   minimallyEncodedRawThreadInfo: MinimallyEncodedRawThreadInfo,
-): RawThreadInfo => {
+): LegacyRawThreadInfo => {
   const { minimallyEncoded, members, roles, currentUser, ...rest } =
     minimallyEncodedRawThreadInfo;
   return {
diff --git a/lib/types/report-types.js b/lib/types/report-types.js
--- a/lib/types/report-types.js
+++ b/lib/types/report-types.js
@@ -7,7 +7,7 @@
 import { type RawEntryInfo, type CalendarQuery } from './entry-types.js';
 import { type MediaMission } from './media-types.js';
 import type { AppState, BaseAction } from './redux-types.js';
-import { type RawThreadInfos } from './thread-types.js';
+import { type LegacyRawThreadInfos } from './thread-types.js';
 import type { UserInfo, UserInfos } from './user-types.js';
 import { tPlatformDetails, tShape } from '../utils/validation-utils.js';
 
@@ -71,10 +71,10 @@
 };
 export type ThreadInconsistencyReportShape = {
   +platformDetails: PlatformDetails,
-  +beforeAction: RawThreadInfos,
+  +beforeAction: LegacyRawThreadInfos,
   +action: BaseAction,
-  +pollResult?: ?RawThreadInfos,
-  +pushResult: RawThreadInfos,
+  +pollResult?: ?LegacyRawThreadInfos,
+  +pushResult: LegacyRawThreadInfos,
   +lastActionTypes?: ?$ReadOnlyArray<$PropertyType<BaseAction, 'type'>>,
   +lastActions?: ?$ReadOnlyArray<ActionSummary>,
   +time?: ?number,
@@ -139,9 +139,9 @@
 
 export type ClientThreadInconsistencyReportShape = {
   +platformDetails: PlatformDetails,
-  +beforeAction: RawThreadInfos,
+  +beforeAction: LegacyRawThreadInfos,
   +action: BaseAction,
-  +pushResult: RawThreadInfos,
+  +pushResult: LegacyRawThreadInfos,
   +lastActions: $ReadOnlyArray<ActionSummary>,
   +time: number,
 };
diff --git a/lib/types/request-types.js b/lib/types/request-types.js
--- a/lib/types/request-types.js
+++ b/lib/types/request-types.js
@@ -18,7 +18,10 @@
   ClientThreadInconsistencyReportShape,
   ClientEntryInconsistencyReportShape,
 } from './report-types.js';
-import { type RawThreadInfo, rawThreadInfoValidator } from './thread-types.js';
+import {
+  type LegacyRawThreadInfo,
+  legacyRawThreadInfoValidator,
+} from './thread-types.js';
 import {
   type CurrentUserInfo,
   currentUserInfoValidator,
@@ -102,7 +105,7 @@
 }>;
 
 type StateChanges = Partial<{
-  +rawThreadInfos: RawThreadInfo[],
+  +rawThreadInfos: LegacyRawThreadInfo[],
   +rawEntryInfos: RawEntryInfo[],
   +currentUserInfo: CurrentUserInfo,
   +userInfos: AccountUserInfo[],
@@ -130,7 +133,7 @@
     ),
     stateChanges: t.maybe(
       tShape<StateChanges>({
-        rawThreadInfos: t.maybe(t.list(rawThreadInfoValidator)),
+        rawThreadInfos: t.maybe(t.list(legacyRawThreadInfoValidator)),
         rawEntryInfos: t.maybe(t.list(rawEntryInfoValidator)),
         currentUserInfo: t.maybe(currentUserInfoValidator),
         userInfos: t.maybe(t.list(accountUserInfoValidator)),
@@ -227,7 +230,7 @@
     +userInfos: boolean,
   }>,
   +stateChanges?: Partial<{
-    +rawThreadInfos: RawThreadInfo[],
+    +rawThreadInfos: LegacyRawThreadInfo[],
     +rawEntryInfos: RawEntryInfo[],
     +currentUserInfo: CurrentUserInfo,
     +userInfos: AccountUserInfo[],
diff --git a/lib/types/session-types.js b/lib/types/session-types.js
--- a/lib/types/session-types.js
+++ b/lib/types/session-types.js
@@ -4,7 +4,7 @@
 
 import type { LogInActionSource } from './account-types.js';
 import type { CalendarQuery } from './entry-types.js';
-import type { RawThreadInfos } from './thread-types.js';
+import type { LegacyRawThreadInfos } from './thread-types.js';
 import {
   type UserInfo,
   type CurrentUserInfo,
@@ -37,14 +37,14 @@
 export type ServerSessionChange =
   | {
       cookieInvalidated: false,
-      threadInfos: RawThreadInfos,
+      threadInfos: LegacyRawThreadInfos,
       userInfos: $ReadOnlyArray<UserInfo>,
       sessionID?: null | string,
       cookie?: string,
     }
   | {
       cookieInvalidated: true,
-      threadInfos: RawThreadInfos,
+      threadInfos: LegacyRawThreadInfos,
       userInfos: $ReadOnlyArray<UserInfo>,
       currentUserInfo: LoggedOutUserInfo,
       sessionID?: null | string,
diff --git a/lib/types/socket-types.js b/lib/types/socket-types.js
--- a/lib/types/socket-types.js
+++ b/lib/types/socket-types.js
@@ -33,7 +33,10 @@
   type ClientClientResponse,
 } from './request-types.js';
 import type { SessionState, SessionIdentification } from './session-types.js';
-import { rawThreadInfoValidator, type RawThreadInfos } from './thread-types.js';
+import {
+  legacyRawThreadInfoValidator,
+  type LegacyRawThreadInfos,
+} from './thread-types.js';
 import {
   type ClientUpdatesResult,
   type ClientUpdatesResultWithUserInfos,
@@ -183,14 +186,14 @@
 export const fullStateSyncActionType = 'FULL_STATE_SYNC';
 export type BaseFullStateSync = {
   +messagesResult: MessagesResponse,
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
   +rawEntryInfos: $ReadOnlyArray<RawEntryInfo>,
   +userInfos: $ReadOnlyArray<UserInfo>,
   +updatesCurrentAsOf: number,
 };
 const baseFullStateSyncValidator = tShape<BaseFullStateSync>({
   messagesResult: messagesResponseValidator,
-  threadInfos: t.dict(tID, rawThreadInfoValidator),
+  threadInfos: t.dict(tID, legacyRawThreadInfoValidator),
   rawEntryInfos: t.list(rawEntryInfoValidator),
   userInfos: t.list(userInfoValidator),
   updatesCurrentAsOf: t.Number,
diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js
--- a/lib/types/thread-types.js
+++ b/lib/types/thread-types.js
@@ -101,7 +101,7 @@
     unread: t.maybe(t.Boolean),
   });
 
-export type RawThreadInfo = {
+export type LegacyRawThreadInfo = {
   +id: string,
   +type: ThreadType,
   +name: ?string,
@@ -119,11 +119,11 @@
   +repliesCount: number,
   +pinnedCount?: number,
 };
-export type RawThreadInfos = {
-  +[id: string]: RawThreadInfo,
+export type LegacyRawThreadInfos = {
+  +[id: string]: LegacyRawThreadInfo,
 };
-export const rawThreadInfoValidator: TInterface<RawThreadInfo> =
-  tShape<RawThreadInfo>({
+export const legacyRawThreadInfoValidator: TInterface<LegacyRawThreadInfo> =
+  tShape<LegacyRawThreadInfo>({
     id: tID,
     type: threadTypeValidator,
     name: t.maybe(t.String),
@@ -230,11 +230,11 @@
 };
 
 export type ThreadStore = {
-  +threadInfos: RawThreadInfos,
+  +threadInfos: LegacyRawThreadInfos,
 };
 export const threadStoreValidator: TInterface<ThreadStore> =
   tShape<ThreadStore>({
-    threadInfos: t.dict(tID, rawThreadInfoValidator),
+    threadInfos: t.dict(tID, legacyRawThreadInfoValidator),
   });
 
 export type ClientDBThreadInfo = {
@@ -434,14 +434,14 @@
 export type RoleModificationRequest = CreateRoleAction | EditRoleAction;
 
 export type RoleModificationResult = {
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
   +updatesResult: {
     +newUpdates: $ReadOnlyArray<ServerUpdateInfo>,
   },
 };
 
 export type RoleModificationPayload = {
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
   +updatesResult: {
     +newUpdates: $ReadOnlyArray<ClientUpdateInfo>,
   },
@@ -453,14 +453,14 @@
 };
 
 export type RoleDeletionResult = {
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
   +updatesResult: {
     +newUpdates: $ReadOnlyArray<ServerUpdateInfo>,
   },
 };
 
 export type RoleDeletionPayload = {
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
   +updatesResult: {
     +newUpdates: $ReadOnlyArray<ClientUpdateInfo>,
   },
@@ -474,7 +474,7 @@
 // in the chat tab if every one of the displayed sidebars is unread
 export const maxUnreadSidebars = 5;
 
-export type ThreadStoreThreadInfos = RawThreadInfos;
+export type ThreadStoreThreadInfos = LegacyRawThreadInfos;
 
 export type ChatMentionCandidates = {
   +[id: string]: ResolvedThreadInfo | MinimallyEncodedResolvedThreadInfo,
diff --git a/lib/types/update-types.js b/lib/types/update-types.js
--- a/lib/types/update-types.js
+++ b/lib/types/update-types.js
@@ -7,7 +7,7 @@
   type RawMessageInfo,
   type MessageTruncationStatus,
 } from './message-types.js';
-import { type RawThreadInfo } from './thread-types.js';
+import { type LegacyRawThreadInfo } from './thread-types.js';
 import {
   type UserInfo,
   userInfoValidator,
@@ -183,7 +183,7 @@
   +type: 1,
   +id: string,
   +time: number,
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
 };
 
 export type ThreadReadStatusUpdateInfo = {
@@ -205,7 +205,7 @@
   +type: 4,
   +id: string,
   +time: number,
-  +threadInfo: RawThreadInfo,
+  +threadInfo: LegacyRawThreadInfo,
   +rawMessageInfos: $ReadOnlyArray<RawMessageInfo>,
   +truncationStatus: MessageTruncationStatus,
   +rawEntryInfos: $ReadOnlyArray<RawEntryInfo>,
diff --git a/lib/types/validation.test.js b/lib/types/validation.test.js
--- a/lib/types/validation.test.js
+++ b/lib/types/validation.test.js
@@ -22,7 +22,7 @@
   serverUpdatesServerSocketMessageValidator,
 } from './socket-types.js';
 import { threadTypes } from './thread-types-enum.js';
-import { rawThreadInfoValidator } from './thread-types.js';
+import { legacyRawThreadInfoValidator } from './thread-types.js';
 import { updateTypes } from './update-types-enum.js';
 import { messageSpecs } from '../shared/messages/message-specs.js';
 import { updateSpecs } from '../shared/updates/update-specs.js';
@@ -629,11 +629,11 @@
 
 describe('thread validation', () => {
   it('should validate correct thread', () => {
-    expect(rawThreadInfoValidator.is(thread)).toBe(true);
+    expect(legacyRawThreadInfoValidator.is(thread)).toBe(true);
   });
   it('should not validate incorrect thread', () => {
     expect(
-      rawThreadInfoValidator.is({ ...thread, creationTime: undefined }),
+      legacyRawThreadInfoValidator.is({ ...thread, creationTime: undefined }),
     ).toBe(false);
   });
 });
diff --git a/lib/utils/drawer-utils.react.js b/lib/utils/drawer-utils.react.js
--- a/lib/utils/drawer-utils.react.js
+++ b/lib/utils/drawer-utils.react.js
@@ -9,7 +9,7 @@
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { communitySubthreads } from '../types/thread-types-enum.js';
 import type {
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   ThreadInfo,
   ResolvedThreadInfo,
 } from '../types/thread-types.js';
@@ -109,7 +109,7 @@
   threadInfosObj: {
     +[id: string]:
       | ThreadInfo
-      | RawThreadInfo
+      | LegacyRawThreadInfo
       | MinimallyEncodedThreadInfo
       | MinimallyEncodedRawThreadInfo,
   },
diff --git a/lib/utils/entity-text.js b/lib/utils/entity-text.js
--- a/lib/utils/entity-text.js
+++ b/lib/utils/entity-text.js
@@ -18,7 +18,10 @@
   threadTypes,
   threadTypeValidator,
 } from '../types/thread-types-enum.js';
-import { type RawThreadInfo, type ThreadInfo } from '../types/thread-types.js';
+import {
+  type LegacyRawThreadInfo,
+  type ThreadInfo,
+} from '../types/thread-types.js';
 import { basePluralize } from '../utils/text-utils.js';
 
 export type UserEntity = {
@@ -144,7 +147,7 @@
       +display?: 'shortName',
       +threadInfo:
         | ThreadInfo
-        | RawThreadInfo
+        | LegacyRawThreadInfo
         | MinimallyEncodedThreadInfo
         | MinimallyEncodedRawThreadInfo,
       +subchannel?: ?boolean,
@@ -154,7 +157,7 @@
       +display: 'alwaysDisplayShortName',
       +threadInfo:
         | ThreadInfo
-        | RawThreadInfo
+        | LegacyRawThreadInfo
         | MinimallyEncodedThreadInfo
         | MinimallyEncodedRawThreadInfo,
       +possessive?: ?boolean,
diff --git a/lib/utils/thread-ops-utils.js b/lib/utils/thread-ops-utils.js
--- a/lib/utils/thread-ops-utils.js
+++ b/lib/utils/thread-ops-utils.js
@@ -3,11 +3,11 @@
 import { assertThreadType } from '../types/thread-types-enum.js';
 import {
   type ClientDBThreadInfo,
-  type RawThreadInfo,
+  type LegacyRawThreadInfo,
 } from '../types/thread-types.js';
 
 function convertRawThreadInfoToClientDBThreadInfo(
-  rawThreadInfo: RawThreadInfo,
+  rawThreadInfo: LegacyRawThreadInfo,
 ): ClientDBThreadInfo {
   return {
     ...rawThreadInfo,
@@ -21,8 +21,8 @@
 
 function convertClientDBThreadInfoToRawThreadInfo(
   clientDBThreadInfo: ClientDBThreadInfo,
-): RawThreadInfo {
-  let rawThreadInfo: RawThreadInfo = {
+): LegacyRawThreadInfo {
+  let rawThreadInfo: LegacyRawThreadInfo = {
     id: clientDBThreadInfo.id,
     type: assertThreadType(clientDBThreadInfo.type),
     name: clientDBThreadInfo.name,
diff --git a/lib/utils/thread-ops-utils.test.js b/lib/utils/thread-ops-utils.test.js
--- a/lib/utils/thread-ops-utils.test.js
+++ b/lib/utils/thread-ops-utils.test.js
@@ -6,10 +6,10 @@
 } from './thread-ops-utils.js';
 import type {
   ClientDBThreadInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
 } from '../types/thread-types.js';
 
-const rawThreadInfo: RawThreadInfo = {
+const rawThreadInfo: LegacyRawThreadInfo = {
   id: '84015',
   type: 6,
   name: 'atul_web',
@@ -405,7 +405,7 @@
   });
 });
 
-const rawThreadInfoWithAvatar: RawThreadInfo = {
+const rawThreadInfoWithAvatar: LegacyRawThreadInfo = {
   ...rawThreadInfo,
   avatar: { type: 'emoji', color: '4b87aa', emoji: '😀' },
 };
diff --git a/lib/utils/toggle-pin-utils.js b/lib/utils/toggle-pin-utils.js
--- a/lib/utils/toggle-pin-utils.js
+++ b/lib/utils/toggle-pin-utils.js
@@ -8,12 +8,12 @@
   MinimallyEncodedThreadInfo,
 } from '../types/minimally-encoded-thread-permissions-types.js';
 import { threadPermissions } from '../types/thread-permission-types.js';
-import type { RawThreadInfo, ThreadInfo } from '../types/thread-types.js';
+import type { LegacyRawThreadInfo, ThreadInfo } from '../types/thread-types.js';
 
 function canToggleMessagePin(
   messageInfo: RawMessageInfo | MessageInfo,
   threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/native/avatars/edit-thread-avatar.react.js b/native/avatars/edit-thread-avatar.react.js
--- a/native/avatars/edit-thread-avatar.react.js
+++ b/native/avatars/edit-thread-avatar.react.js
@@ -10,7 +10,10 @@
   MinimallyEncodedRawThreadInfo,
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import {
   useNativeSetThreadAvatar,
@@ -27,7 +30,7 @@
 
 type Props = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedThreadInfo
     | MinimallyEncodedRawThreadInfo,
diff --git a/native/avatars/thread-avatar.react.js b/native/avatars/thread-avatar.react.js
--- a/native/avatars/thread-avatar.react.js
+++ b/native/avatars/thread-avatar.react.js
@@ -15,7 +15,7 @@
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from 'lib/types/thread-types-enum.js';
 import type {
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   ThreadInfo,
   ResolvedThreadInfo,
 } from 'lib/types/thread-types.js';
@@ -25,7 +25,7 @@
 
 type Props = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | ResolvedThreadInfo
     | MinimallyEncodedRawThreadInfo
diff --git a/native/chat/settings/emoji-thread-avatar-creation.react.js b/native/chat/settings/emoji-thread-avatar-creation.react.js
--- a/native/chat/settings/emoji-thread-avatar-creation.react.js
+++ b/native/chat/settings/emoji-thread-avatar-creation.react.js
@@ -10,7 +10,10 @@
   MinimallyEncodedRawThreadInfo,
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import { useNativeSetThreadAvatar } from '../../avatars/avatar-hooks.js';
 import EmojiAvatarCreation from '../../avatars/emoji-avatar-creation.react.js';
@@ -21,7 +24,7 @@
 
 export type EmojiThreadAvatarCreationParams = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/native/redux/client-db-utils.js b/native/redux/client-db-utils.js
--- a/native/redux/client-db-utils.js
+++ b/native/redux/client-db-utils.js
@@ -9,7 +9,7 @@
 } from 'lib/types/message-types.js';
 import type {
   ClientDBThreadInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   ThreadStoreThreadInfos,
 } from 'lib/types/thread-types.js';
 import {
@@ -71,7 +71,10 @@
 
   // Convert `rawThreadInfo`s to a map of `threadID` => `threadInfo`.
   const threadIDToThreadInfo = rawThreadInfos.reduce(
-    (acc: { [string]: RawThreadInfo }, threadInfo: RawThreadInfo) => {
+    (
+      acc: { [string]: LegacyRawThreadInfo },
+      threadInfo: LegacyRawThreadInfo,
+    ) => {
       acc[threadInfo.id] = threadInfo;
       return acc;
     },
@@ -83,7 +86,7 @@
     migrationFunc(threadIDToThreadInfo);
 
   // Convert the updated `threadInfo`s back into an array.
-  const updatedRawThreadInfos: $ReadOnlyArray<RawThreadInfo> = values(
+  const updatedRawThreadInfos: $ReadOnlyArray<LegacyRawThreadInfo> = values(
     updatedThreadIDToThreadInfo,
   );
 
diff --git a/native/redux/edit-thread-permission-migration.js b/native/redux/edit-thread-permission-migration.js
--- a/native/redux/edit-thread-permission-migration.js
+++ b/native/redux/edit-thread-permission-migration.js
@@ -4,14 +4,14 @@
 import type {
   LegacyMemberInfo,
   ThreadCurrentUserInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   LegacyRoleInfo,
-  RawThreadInfos,
+  LegacyRawThreadInfos,
 } from 'lib/types/thread-types.js';
 
 function addDetailedThreadEditPermissionsToUser<
   T: LegacyMemberInfo | ThreadCurrentUserInfo,
->(threadInfo: RawThreadInfo, member: T, threadID: string): T {
+>(threadInfo: LegacyRawThreadInfo, member: T, threadID: string): T {
   let newPermissions = null;
   if (threadInfo.type === threadTypes.PRIVATE) {
     newPermissions = {
@@ -59,11 +59,11 @@
 }
 
 function migrateThreadStoreForEditThreadPermissions(threadInfos: {
-  +[id: string]: RawThreadInfo,
-}): RawThreadInfos {
-  const newThreadInfos: { [string]: RawThreadInfo } = {};
+  +[id: string]: LegacyRawThreadInfo,
+}): LegacyRawThreadInfos {
+  const newThreadInfos: { [string]: LegacyRawThreadInfo } = {};
   for (const threadID in threadInfos) {
-    const threadInfo: RawThreadInfo = threadInfos[threadID];
+    const threadInfo: LegacyRawThreadInfo = threadInfos[threadID];
     const updatedMembers = threadInfo.members.map(member =>
       addDetailedThreadEditPermissionsToUser(threadInfo, member, threadID),
     );
diff --git a/native/redux/manage-pins-permission-migration.js b/native/redux/manage-pins-permission-migration.js
--- a/native/redux/manage-pins-permission-migration.js
+++ b/native/redux/manage-pins-permission-migration.js
@@ -1,21 +1,21 @@
 // @flow
 
 import type {
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   LegacyMemberInfo,
   ThreadCurrentUserInfo,
   LegacyRoleInfo,
-  RawThreadInfos,
+  LegacyRawThreadInfos,
 } from 'lib/types/thread-types.js';
 
-type ThreadStoreThreadInfos = RawThreadInfos;
+type ThreadStoreThreadInfos = LegacyRawThreadInfos;
 
 const adminRoleName = 'Admins';
 
 function addManagePinsThreadPermissionToUser<
   TargetMemberInfo: LegacyMemberInfo | ThreadCurrentUserInfo,
 >(
-  threadInfo: RawThreadInfo,
+  threadInfo: LegacyRawThreadInfo,
   member: TargetMemberInfo,
   threadID: string,
 ): TargetMemberInfo {
@@ -59,9 +59,9 @@
 function persistMigrationForManagePinsThreadPermission(
   threadInfos: ThreadStoreThreadInfos,
 ): ThreadStoreThreadInfos {
-  const newThreadInfos: { [string]: RawThreadInfo } = {};
+  const newThreadInfos: { [string]: LegacyRawThreadInfo } = {};
   for (const threadID in threadInfos) {
-    const threadInfo: RawThreadInfo = threadInfos[threadID];
+    const threadInfo: LegacyRawThreadInfo = threadInfos[threadID];
     const updatedMembers = threadInfo.members.map(member =>
       addManagePinsThreadPermissionToUser(threadInfo, member, threadID),
     );
diff --git a/native/redux/persist.js b/native/redux/persist.js
--- a/native/redux/persist.js
+++ b/native/redux/persist.js
@@ -72,7 +72,7 @@
 import { defaultGlobalThemeInfo } from 'lib/types/theme-types.js';
 import type {
   ClientDBThreadInfo,
-  RawThreadInfo,
+  LegacyRawThreadInfo,
 } from 'lib/types/thread-types.js';
 import {
   translateClientDBMessageInfoToRawMessageInfo,
@@ -259,7 +259,7 @@
     },
   }),
   [19]: (state: any) => {
-    const threadInfos: { [string]: RawThreadInfo } = {};
+    const threadInfos: { [string]: LegacyRawThreadInfo } = {};
     for (const threadID in state.threadStore.threadInfos) {
       const threadInfo = state.threadStore.threadInfos[threadID];
       const { visibilityRules, ...rest } = threadInfo;
@@ -379,7 +379,7 @@
       return state;
     }
 
-    const threadInfos: { [string]: RawThreadInfo } = {};
+    const threadInfos: { [string]: LegacyRawThreadInfo } = {};
     const stack = [...rootIDs];
     while (stack.length > 0) {
       const threadID = stack.shift();
@@ -523,7 +523,10 @@
 
     // 8. Convert rawThreadInfos to a map of threadID to threadInfo
     const threadIDToThreadInfo = rawThreadInfosWithPinnedCount.reduce(
-      (acc: { [string]: RawThreadInfo }, threadInfo: RawThreadInfo) => {
+      (
+        acc: { [string]: LegacyRawThreadInfo },
+        threadInfo: LegacyRawThreadInfo,
+      ) => {
         acc[threadInfo.id] = threadInfo;
         return acc;
       },
@@ -932,7 +935,10 @@
       convertClientDBThreadInfoToRawThreadInfo,
     );
     const rawThreadInfosObject = rawThreadInfos.reduce(
-      (acc: { [string]: RawThreadInfo }, threadInfo: RawThreadInfo) => {
+      (
+        acc: { [string]: LegacyRawThreadInfo },
+        threadInfo: LegacyRawThreadInfo,
+      ) => {
         acc[threadInfo.id] = threadInfo;
         return acc;
       },
diff --git a/native/redux/remove-select-role-permissions.js b/native/redux/remove-select-role-permissions.js
--- a/native/redux/remove-select-role-permissions.js
+++ b/native/redux/remove-select-role-permissions.js
@@ -1,15 +1,15 @@
 // @flow
 
 import type {
-  RawThreadInfos,
-  RawThreadInfo,
+  LegacyRawThreadInfos,
+  LegacyRawThreadInfo,
   LegacyRoleInfo,
 } from 'lib/types/thread-types.js';
 import { permissionsToRemoveInMigration } from 'lib/utils/migration-utils.js';
 
 function persistMigrationToRemoveSelectRolePermissions(
-  rawThreadInfos: RawThreadInfos,
-): RawThreadInfos {
+  rawThreadInfos: LegacyRawThreadInfos,
+): LegacyRawThreadInfos {
   // This is to handle the client being logged out and not having any threads
   // to provide here. In this case, we want the migration to still succeed
   // so we early return an empty object.
@@ -17,7 +17,7 @@
     return {};
   }
 
-  const updatedThreadInfos: { [string]: RawThreadInfo } = {};
+  const updatedThreadInfos: { [string]: LegacyRawThreadInfo } = {};
   for (const threadID in rawThreadInfos) {
     const threadInfo = rawThreadInfos[threadID];
     const { roles } = threadInfo;
diff --git a/native/redux/remove-select-role-permissions.test.js b/native/redux/remove-select-role-permissions.test.js
--- a/native/redux/remove-select-role-permissions.test.js
+++ b/native/redux/remove-select-role-permissions.test.js
@@ -1,6 +1,6 @@
 // @flow
 
-import type { RawThreadInfos } from 'lib/types/thread-types.js';
+import type { LegacyRawThreadInfos } from 'lib/types/thread-types.js';
 import { deepDiff } from 'lib/utils/objects.js';
 
 import { persistMigrationToRemoveSelectRolePermissions } from './remove-select-role-permissions.js';
@@ -8,7 +8,7 @@
 
 describe('persistMigrationToRemoveDescendantOpenVoiced', () => {
   it("should correctly remove 'descendant_open_voiced' from permissions", () => {
-    const migratedRawThreadInfos: RawThreadInfos =
+    const migratedRawThreadInfos: LegacyRawThreadInfos =
       persistMigrationToRemoveSelectRolePermissions(
         threadStoreThreadsWithIncorrectPermissions,
       );
diff --git a/native/redux/update-roles-and-permissions.js b/native/redux/update-roles-and-permissions.js
--- a/native/redux/update-roles-and-permissions.js
+++ b/native/redux/update-roles-and-permissions.js
@@ -8,7 +8,7 @@
 } from 'lib/permissions/thread-permissions.js';
 import type { ThreadPermissionsBlob } from 'lib/types/thread-permission-types.js';
 import type {
-  RawThreadInfo,
+  LegacyRawThreadInfo,
   ThreadStoreThreadInfos,
   LegacyMemberInfo,
 } from 'lib/types/thread-types.js';
@@ -56,7 +56,8 @@
   const recursivelyUpdateRoles = (
     node: $ReadOnly<ThreadTraversalNode>,
   ): void => {
-    const threadInfo: RawThreadInfo = updatedThreadStoreInfos[node.threadID];
+    const threadInfo: LegacyRawThreadInfo =
+      updatedThreadStoreInfos[node.threadID];
     const computedRolePermissionBlobs = getRolePermissionBlobs(threadInfo.type);
 
     const roles = { ...threadInfo.roles };
@@ -78,7 +79,8 @@
     node: $ReadOnly<ThreadTraversalNode>,
     memberToThreadPermissionsFromParent: ?MemberToThreadPermissionsFromParent,
   ): void => {
-    const threadInfo: RawThreadInfo = updatedThreadStoreInfos[node.threadID];
+    const threadInfo: LegacyRawThreadInfo =
+      updatedThreadStoreInfos[node.threadID];
 
     const updatedMembers = [];
     const memberToThreadPermissionsForChildren: {
@@ -123,7 +125,8 @@
     node: $ReadOnly<ThreadTraversalNode>,
     permissionsFromParent: ?ThreadPermissionsBlob,
   ): void => {
-    const threadInfo: RawThreadInfo = updatedThreadStoreInfos[node.threadID];
+    const threadInfo: LegacyRawThreadInfo =
+      updatedThreadStoreInfos[node.threadID];
     const { currentUser, roles } = threadInfo;
     const { role } = currentUser;
 
diff --git a/native/selectors/message-selectors.js b/native/selectors/message-selectors.js
--- a/native/selectors/message-selectors.js
+++ b/native/selectors/message-selectors.js
@@ -6,7 +6,7 @@
 import type { ThreadMessageInfo } from 'lib/types/message-types.js';
 import { defaultNumberPerThread } from 'lib/types/message-types.js';
 import type { ThreadActivityStore } from 'lib/types/thread-activity-types.js';
-import { type RawThreadInfos } from 'lib/types/thread-types.js';
+import { type LegacyRawThreadInfos } from 'lib/types/thread-types.js';
 
 import { activeThreadSelector } from '../navigation/nav-selectors.js';
 import type { AppState } from '../redux/state-types.js';
@@ -19,7 +19,7 @@
     (state: AppState) => state.threadStore.threadInfos,
     (state: AppState) => state.threadActivityStore,
     (
-      threadInfos: RawThreadInfos,
+      threadInfos: LegacyRawThreadInfos,
       threadActivityStore: ThreadActivityStore,
     ): ?number => {
       let nextTime;
diff --git a/web/avatars/edit-thread-avatar-menu.react.js b/web/avatars/edit-thread-avatar-menu.react.js
--- a/web/avatars/edit-thread-avatar-menu.react.js
+++ b/web/avatars/edit-thread-avatar-menu.react.js
@@ -10,7 +10,10 @@
   MinimallyEncodedRawThreadInfo,
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import { useUploadAvatarMedia } from './avatar-hooks.react.js';
 import css from './edit-avatar-menu.css';
@@ -27,7 +30,7 @@
 
 type Props = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedThreadInfo
     | MinimallyEncodedRawThreadInfo,
diff --git a/web/avatars/edit-thread-avatar.react.js b/web/avatars/edit-thread-avatar.react.js
--- a/web/avatars/edit-thread-avatar.react.js
+++ b/web/avatars/edit-thread-avatar.react.js
@@ -10,7 +10,10 @@
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { threadPermissions } from 'lib/types/thread-permission-types.js';
-import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import EditThreadAvatarMenu from './edit-thread-avatar-menu.react.js';
 import css from './edit-thread-avatar.css';
@@ -18,7 +21,7 @@
 
 type Props = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/web/avatars/thread-avatar.react.js b/web/avatars/thread-avatar.react.js
--- a/web/avatars/thread-avatar.react.js
+++ b/web/avatars/thread-avatar.react.js
@@ -13,14 +13,17 @@
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
 import { threadTypes } from 'lib/types/thread-types-enum.js';
-import { type RawThreadInfo, type ThreadInfo } from 'lib/types/thread-types.js';
+import {
+  type LegacyRawThreadInfo,
+  type ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import Avatar from './avatar.react.js';
 import { useSelector } from '../redux/redux-utils.js';
 
 type Props = {
   +threadInfo:
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | ThreadInfo
     | MinimallyEncodedRawThreadInfo
     | MinimallyEncodedThreadInfo,
diff --git a/web/avatars/thread-emoji-avatar-selection-modal.react.js b/web/avatars/thread-emoji-avatar-selection-modal.react.js
--- a/web/avatars/thread-emoji-avatar-selection-modal.react.js
+++ b/web/avatars/thread-emoji-avatar-selection-modal.react.js
@@ -16,14 +16,17 @@
   MinimallyEncodedRawThreadInfo,
   MinimallyEncodedThreadInfo,
 } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js';
+import type {
+  LegacyRawThreadInfo,
+  ThreadInfo,
+} from 'lib/types/thread-types.js';
 
 import EmojiAvatarSelectionModal from './emoji-avatar-selection-modal.react.js';
 
 type Props = {
   +threadInfo:
     | ThreadInfo
-    | RawThreadInfo
+    | LegacyRawThreadInfo
     | MinimallyEncodedThreadInfo
     | MinimallyEncodedRawThreadInfo,
 };
diff --git a/web/redux/initial-state-gate.js b/web/redux/initial-state-gate.js
--- a/web/redux/initial-state-gate.js
+++ b/web/redux/initial-state-gate.js
@@ -8,7 +8,7 @@
 import type { ThreadStoreOperation } from 'lib/ops/thread-store-ops.js';
 import { allUpdatesCurrentAsOfSelector } from 'lib/selectors/keyserver-selectors.js';
 import { canUseDatabaseOnWeb } from 'lib/shared/web-database.js';
-import type { RawThreadInfo } from 'lib/types/thread-types.js';
+import type { LegacyRawThreadInfo } from 'lib/types/thread-types.js';
 import { convertIDToNewSchema } from 'lib/utils/migration-utils.js';
 import { entries } from 'lib/utils/objects.js';
 import { useDispatch } from 'lib/utils/redux-utils.js';
@@ -97,7 +97,7 @@
 
             const threadStoreOperations: ThreadStoreOperation[] = entries(
               threadInfos,
-            ).map(([id, threadInfo]: [string, RawThreadInfo]) => ({
+            ).map(([id, threadInfo]: [string, LegacyRawThreadInfo]) => ({
               type: 'replace',
               payload: {
                 id,
diff --git a/web/redux/nav-reducer.js b/web/redux/nav-reducer.js
--- a/web/redux/nav-reducer.js
+++ b/web/redux/nav-reducer.js
@@ -2,7 +2,7 @@
 
 import { pendingToRealizedThreadIDsSelector } from 'lib/selectors/thread-selectors.js';
 import { threadIsPending } from 'lib/shared/thread-utils.js';
-import type { RawThreadInfos } from 'lib/types/thread-types.js';
+import type { LegacyRawThreadInfos } from 'lib/types/thread-types.js';
 
 import { updateNavInfoActionType } from '../redux/action-types.js';
 import type { Action } from '../redux/redux-setup.js';
@@ -11,7 +11,7 @@
 export default function reduceNavInfo(
   oldState: NavInfo,
   action: Action,
-  newThreadInfos: RawThreadInfos,
+  newThreadInfos: LegacyRawThreadInfos,
 ): NavInfo {
   let state = oldState;
   if (action.type === updateNavInfoActionType) {
diff --git a/web/selectors/thread-selectors.js b/web/selectors/thread-selectors.js
--- a/web/selectors/thread-selectors.js
+++ b/web/selectors/thread-selectors.js
@@ -16,7 +16,10 @@
   RobotextMessageInfo,
 } from 'lib/types/message-types.js';
 import type { MinimallyEncodedThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { ThreadInfo, RawThreadInfos } from 'lib/types/thread-types.js';
+import type {
+  ThreadInfo,
+  LegacyRawThreadInfos,
+} from 'lib/types/thread-types.js';
 import { values } from 'lib/utils/objects.js';
 import { useDispatch } from 'lib/utils/redux-utils.js';
 
@@ -141,7 +144,7 @@
   createSelector(
     (state: AppState) => state.threadStore.threadInfos,
     (state: AppState) => state.communityPickerStore.chat,
-    (threadInfos: RawThreadInfos, communityID: ?string): number =>
+    (threadInfos: LegacyRawThreadInfos, communityID: ?string): number =>
       values(threadInfos).filter(
         threadInfo =>
           threadInHomeChatList(threadInfo) &&