Auth-Dedicated Server, and Client

Hello! I just wanted to ask.

I want a system where we have two Completely different projects one for the client and one for the server. The server will run dedicated, by using source control and running it with log. But can the client be a completely different project. For example the client would never need to check if its a server or client. Because the client knows it will always be the client. Also can I make the server authoritative with movement, etc. I am just asking how can I complete these goals:

1> Make the server authoritative

2> I’ve payed for a amazon server can I run the dedicated server on that?

3> Can I make the client and server completely different. Only communicating through network.

4> Can the server hold all data, so when the client joins, it downloads the server map etc.

This means if there is a update, most of the time the client does not need to be updated.