I use G3D::GUniqueID to assign a unique identifier to every resource in the system, which right now means cards and clients. This allows the server and client to refer to objects without having to deal with synchronizing namespaces.
I also refactored the code because the number of global variables that I was accumulating in C++ was horrifying (a side effect of using a C-based webserver). The full code base is about 500 SLOC, measured by counting semi-colons in the project.
- Have the server send the client a list of the cards it has
- Have the server display the contents of the current encounter as cards
- Put "use" button on the active card
- Make an action on the client have some effect on the server