delete FArchive, make separate FBinaryWriter, FBinaryReader? ;)

yes, yes, i know.
But really, this worth it.

Can you give me reasons why not?

FArchive is the base class, you never use it directly. It does not make any sense to delete it, it’s the base class.

Maybe you are looking for FMemoryReader/FMemoryWriter

class FBinaryReader {};
class FMemoryReader : public FBinaryReader {};

class FBinaryWriter {};
class FMemoryWriter : public FBinaryWriter {};

remove ArIsLoading,
remove ArIsSaving.

add additional operator “>>” for reading (loading).
use operator “<<” only for writing (saving).