Just one more thing… (</Columbo>)
The function that generates the candidates when you hire staff is currently anonymous. It probably deserves to be exposed in some way. You could do that by just giving it a name, so we could override the entire thing, but it might also be useful to add events for it.
An event that’s fired before returning the generated candidates, maybe “beforeStaffChoice” or “beforeHiring,” which passes to the event handlers the array of generated candidates, the budget ratio, and maybe that mersenne twister you create (why do you do that, BTW? Why not just keep using the company RNG?) would allow modders to append traits to staff without replacing the whole function. I was thinking it might be interesting, for example, to have staff members sometimes have a specialty in certain genres (so you might get, for instance, a designer who’s particularly good with Action games). It would be pretty easy to implement with an event like that.
An event that fires after a new staff member is chosen could also be useful. I don’t need it myself, though.
EDIT: Actually, on reflection, an “afterStaffChoice” event would be necessary for what I was thinking, since the properties of the generated staff members are manually copied to the Character object that’s later created. Simply adding a property to that array wouldn’t be enough, we’d need to store the information in the mod’s data store. So, an “afterStaffChoice” event that passes, to the handler, the object from the generated candidate array which the player chose to be hired (which would include any of the properties we appended in the “beforeStaffChoice” event), or nothing (if the window was closed without hiring a staff member).