A VertexSpecification makes it easy to use Vertex Buffer Object with interleaved attributes. It's role is similar to the OpenGL VAO one. If the user requests it, the VertexSpecification can "take control" of a given VBO and/or IBO and automatically bind/unbind them when the VertexSpecification is used/unused. You have to specify every attribute manually for now.
Describes a single attribute in a vertex entry.