Programs using the
jcanephora
APIs
must run on as many different OpenGL implementations as possible.
Code written using the API should be version-branch-free, and use
only the features common to all available OpenGL implementations.
Representing every object as an integer is unacceptable. Any
conceptually distinct objects must be made type-incompatible,
eliminating entire classes of bugs typical to OpenGL programs
at compile time.