I'll tell you what I am doing. I am building a 2d/top-down turn-based strategy game. The map is a scrolling tilemap, for which I have built an editor. So far, I found it much easier to simply create a separate .bmx file for the type (tilemap) and include every method, field, and function that I'll ever want that map to be capable of in that one type declaration file. Then all I do is include that one file, and I know my map will work in both programs (because I'm using the exact same load, save, draw, etc. methods). So long as I don't write a call to it, none of the methods, etc. that I don't want are ever used in the other programs. This has been much easier than trying to write two separate types and then try to reconcile all the different functions, field names, etc.
Unless you are going to have a HUGE amount of additional stored information (to slow down the program or greatly increase its memory footprint), I don't see any reason not to just write one type and not pass any of the info to a program that doesn't use it.
Unless you are going to have a HUGE amount of additional stored information (to slow down the program or greatly increase its memory footprint), I don't see any reason not to just write one type and not pass any of the info to a program that doesn't use it.