New games table that is the parent of projects. This subsumes “game” data from the projects table, and includes the bgg_id field to refer back to BoardGameGeek. The front-end can also use that to look-up additional information if so desired. The games rows has two fields summary and text which should contain a short and longer description, respectively, of the game. This could be lifted from BGG - either in the back-end or front-end as needed.
projects table is a lot smaller as most information is stored in the games table. Also note that each projects row has summary and text fields - similar to the games rows. The summary field could be shown by the front end so that users may quickly and easily get an overview of the various projects of a single game.
files do not point to projects but only to packages as each file will belong to a package - not a project.
I think it would be a good idea to get something like this in place before you start to consolidate the database, let alone deploy it. It will be a huge hassle to remake the database to accommodate the “same module” categorisation of “projects”.