PlainField<F>: F extends Date | Uint8Array | bigint | boolean | string | number    ? F    : F extends (infer  U)[]        ? PlainField<U>[]        : F extends ReadonlyArray<infer  U>            ? ReadonlyArray<PlainField<U>>            : F extends Message<infer  U>                ? PlainMessage<U>                : F extends OneofSelectedMessage<infer  C, infer  V>                    ? {                         case: C;                         value: PlainField<V>;                     }                    : F extends {                             case: string | undefined;                             value?: unknown;                         }                        ? F                        : F extends {                                 [
key: 
string | number]
: Message<infer  U>;                             }                            ? {                                 [
key: 
string | number]
: PlainField<U>;                             }                            : F