After we fix the 0.0.20-beta bug of the transparent blocks sometimes; do a bit of refactoring, road to 0.0.21-beta:

Current structure:
Singleplayer world, has direct access to world.
```
src/
    clouds.c
    clouds.h
    console.c
    console.h
    main.c
    menu.c
    menu.h
    player.c
    player.h
    rendering.c
    rendering.h
    root.zig
    utils.c
    utils.h
    vec_math.c
    vec_math.h
    worker.c
    world_generation.c
    world.h
```
The goal:
even though we're not adding multiplayer yet (that's for later (though we'll pave the road)); the structure i want is:
a server, hosting the world, and has the authority, then a client connects to it
```
src/
    common/
        console.c
        console.h
        main.c
        player.c
        player.h
        root.zig
        utils.c
        utils.h
        worker.c
        world_generation.c
        world.h
    client/
        clouds.c
        clouds.h
        menu.c
        menu.h
        rendering.c
        rendering.h
        vec_math.c
        vec_math.h
    server/
        net.c
        net.h
        auth.c
        auth.h
```
note that the world code is in common/ but, of course, the server should own the world and the state, the client only sends intent.

One extremely point
Make networking code exist, even if fake.
For example:
```
client sends "move intent"
server simulates movement
client receives authoritative state
```
even in localhost.

Another major point:
define packet serialization
Do NOT sprinkle:
send(sock, &player, sizeof(player), 0);
everywhere.

Instead:
```
packet_write_u32()
packet_write_vec3()
packet_read_string()
```
from day one.
Future you will worship present you.