The model ID string for the FT2900 seems to be defined by the state of three solder bridges, which gives us a number of 8 possible states. We need to make sure, that a image is working for one version only, that is why we want the user to decide on which version is working upfront. I would propose to make use of the generator pattern and to generate the needed classes with their properties on the fly.
CHIRP already has this functionality built in, you just need to make those classes implement the matching mechanism:
http://chirp.danplanet.com/projects/chirp/repository/entry/chirp/drivers/ft2...
Right now it's just comparing file size, which is identical between all of them.
Is there already test code to mock the ID string for testing?
If you put an image for your radio in tests/images then run_tests.sh will validate that no two models are matched twice.
Thanks!
--Dan