I had planned co-op for later. Then I thought about how hard it is to bolt multiplayer onto a finished game, and it moved to the front of the queue.
The setup: up to four players, one host, and guests who join through a Steam lobby (there is also a direct IP path for LAN). The host runs the world and the guests mirror it. Everyone shares one BuckUp account, so the business really belongs to all of you, but each player has their own pockets and their own cash. Guests can do everything the host can.
The first milestone was humble: four people walking around the same town, seeing the same clock and the same doors open. After that came the shared business, the town's people and deals, the police for every player, guests keeping their things in the host's save, and a lobby in the main menu where everybody makes a character before the game starts.
The rule I took away from those days is written at the top of my notes: everything I build must work in co-op. For every new feature I decide whether it is local, worked out on every machine from the shared state, or an action a guest sends to the host. Then I test it with several game windows open side by side. It slows me down a little every single time, and it saves me from a lot of pain later.