Oki, so I took a quick look at old FG code, is was written to work completely on it's own, with it own systems and structure (And most (or any at all) if it is not reusable in SimPy land, large parts of it, really, really badly try to emulate what SimPy already does (perfectly I might add), and rest is plainly built around that). I now remember that it was while writing original FG (SE) code that I've tried to code in a new Jobs system that worked like SimPy (which I didn't know existed) and failed miserably after two days of coding efforts...
We'll do:
1) SE Building: Normal Modern NewStyleUpgradableBuilding. I am not sure if this will be a unique building, it's not required by code but FG will have unique interface... so it makes some sense.
2) SE Exploration Business: First thing I am going to "core" code, it will take care of the main exploration loop.
3) SE Generic Job, will be a normal Job with a function of building reports + applying stats as well as holding check methods like all normal jobs do.
4) SE Exploration Run object. This one will be new, it will hold/store all the data of an exploration run (which can run multiple days). In a perfect world we would just leave the SimPy object but it is absolutely impossible to save SimPy land in Ren'Py land (generators cannot be pickled with Python without extraordinary measures). It's a minor inconvenience anyway.
5) SE SimpleEvent object: This one is mainly for interface purposed because we want advanced reports with can also be buttons to open more info. This is the best way of doing it.
6) Job Events: I talked about this before, we'll need it for events to be generic and reusable.
===>>
This looks like a plan, which is more likely to work than to fail (and to work well). Once SE core code is complete, I'll add JobEvents and normalize jobs code in general, then explain the concept on how it is working and we can stuff it with content (events/matron mods/more + better reports/better clients handling/moar meaningful upgrades/complete building system and etc.) together job by job.