The gold standard for this sort of thing is the P-ROC (or P3-ROC) from http://www.pinballcontrollers.com/
Using a P3-ROC, PDB-16s and SW-16 boards will give you 16 drivers and 16 switches, you can chain as many SW-16s and PDB-16s as you want. You can use a Power Driver Matrix 8x8 to control a lamp matrix, or you can use a PD-LED to drive up to 84 LEDs (or 28 RGB LEDs).
We support the Mission Pinball Framework as well as PyProcGame, both are in Python.
Some of the games that have been done using a combination of P-ROC or P3-ROC:
Scott Danesi's awesome Total Annihilation Pinball
Eric Priepke's Cactus Canyon Continued
Matt Bonnema's DeadPin
Matt Bonnema's Doom pinball https://pinside.com/pinball/forum/topic/doom-custom-pinball-machine
My Wizard Blocks game https://pinside.com/pinball/forum/topic/theres-one-more-wizard-blocks
Josh Kugler's Casino https://pinside.com/pinball/forum/topic/casino
BoP 2.0
============================
There are plenty more examples, but that should give you an idea of the quality and types of games that are possible.