For a project this small size with a small type ontology, it's better
C style to have one header where all the assumptions about types and
structures are immediately visible.
This is a first step towards turning all that global state into a handful
of structures - probably just two, one saveable as a binary game state.
They have exactly the wrong kind of randomness for this job - not
returning consistent sequences across different platforms or C library
versions, and because pseodorandom not really better than sampling
the clock.
The thinking here is that we simplify life by going pure ANSI/POSIX.
This is a text game. If it ever runs on anything but Unix again it's
almost certain to be on something like WSL that supplies a
POSIX-conformant text console.