Custom vertex attributes for Meshes
Custom vertex attributes are something I feel would hugely benefit love.graphics' extensibility by lovers (keeping in line with the "mechanism over policy" philosophy), provided they aren't required knowledge for any simple uses of LÖVE.
For those who don't know, a vertex attribute is some variable associated with a vertex in an object. For example, all things drawn in LÖVE currently have some combination of position, color, and texture coordinate vertex attributes. Custom attributes would have a lover-defined number of components (between 1 and 4) per attribute, and would likely only be usable from inside a custom vertex shader, since LÖVE wouldn't have any use for the lover-defined attribute on its own.
I think the Mesh type is the best place to have them, since you already specify per-vertex attribute information.
The tricky part is coming up with an implementation that's as simple and as powerful as possible, while also not interfering with "standard" use of Meshes (no custom attributes.)
This is pretty good, but maybe a bit brittle. We should see if we can do better.
One issue we will have to deal with is how to link the custom attributes to the attribute variables in vertex shaders. It could either be by string name or by index. There are some downsides to each, mostly relating to how OpenGL links them together in its own API.
Another is how to keep the out-facing API clean and simple. I like
Mesh:setVertex(index, x, y, u, v, r, g, b, a) (etc.) but obviously it wouldn't work like that with custom attributes.
And, we should decide whether to have custom attributes as an "array of vertices" (as the current API is) or as individual arrays per attribute. The benefit to the former is it cleanly identifies each individual vertex and is also more performant normally. The benefit to the latter is the API might(?) be easier to figure out and it can give better performance if you only want to modify a single attribute of every vertex.
I don't consider this a blocker for 0.9.0, but it might be nice to squeeze it in before release. :)