So I'm creating a kind of API or library to make GUI creation easier.. and I'd like some advice for my package setup.
The thing is, I have internal classes that relate the library classes to the basic Minecraft ones. I want them to be strongly discouraged/inaccessible to mods which use my library.
Right now my setup is to have a separate package with a different naming scheme that contains all internal components. The nice part about this is that it differentiates the classes when imported. I will know if an import is internal and it would also be more apparent to modders because of the package name. The problem, however, is that since they are in a separate package from the API classes, these transformation classes need to be public.
The other alternative, which I thought of to fix this problem, is to include the transformation classes in the same package as the API implementation. That way I could make them package private and therefore inaccessible to other mods. But I didn't want them to be mixed in with the API.
Any thoughts on what would be a better setup, or is there a way which I haven't considered?
Thanks for any input.