[engine] 3D model types, and overview

This is probably the wrong board, it’s more about engine development really.

So I’m trying to implement a all-around model loader framework for my library, that just parses vertices and stores them as ‘Vertex’ objects…

Vertex.java

Vector4f position;
Vector2f textureUV;
Vector3f color; // I should probably remove this by now... xD
Vector3f normal;

// ... getters and setters / constructors

I made it like this because I wanted it to be super easy to send vertices down the pipeline however you want. By making a vertex class, and making VBOs read from them. Or draw them directly from immediate mode statically. This way I could have a model, loaded from any source, be rendered in the same way throughout the app.

But my problem is, what should a basic 3D model do? What fields/methods should it inherit? In other words, what stays constant per 3D model type?

Summary: I have a universal vertex class, wrapping a position, normal, texture UV, and a color… What functions/fields stay the same while loading different types of 3D models? Also, what different model types do I have to focus on?

EDIT: Also, where would I find documentation on format of each model?

Thanks in advance.