Right now handling EntityKeys seems a little strange. If I receive a ClientModel EntityKey I can't work with it in a easy way when passing it to a function that requires let's say a MultiplayerModel EntityKey.
I think EntityKey makes much more sense in SharedModels since it has the same name and fields within all sub models (Client, Multiplayer etc..).