With Unity IPFS package's inclusion, there could be a lot of windfall, too.
For example, including but maybe not limited to...
BouncyCastle provides (or rather, is) a crypto stack - more features with the stock .NET packages, for example ECC or Ed25519 keys. Smaller, faster and more secure compared to RSA keys.
Crypto operations themselves should be migrated to BouncyCastle, away from stock .NET because of its differing implementations.
ProtoBuf or Protobut-Net provides smaller serialization than ASN.1
The IPFS node serves a file repository and a receptacle for avatar files (own and other's alike) and the world files. Tho node will run permanently, even if you're in the client mode.
PeerID as the user public key? Keeping them separate would pose some added workload, but the node's presence disconnects the user's presence and online status.
The user data could include the node's PeerID as a 'home node'. The 'home node' could pose as the message post office. Once connected, (text) messages could be delivered to the targeted user. OTOH, it would defeat the purpose of keeping them separate.
An online user could broadcast a hello message with his user's Public Key, And, a digested user public key can be delivered as a file, ready to be spotted with FindProviders() to find friends.
In some cases, I need the means to compute the CID without delivering a file's content, to have it as a handle to find and connect to a particular node (or server).
With Unity IPFS package's inclusion, there could be a lot of windfall, too.
For example, including but maybe not limited to...