6693a1e0bad504916906aa161cec69365fcbb8a6: noticed that warnings/errors were sticking around if they weren't overwritten by the next op. pulled the begin/finalise logic out so I don't have to keep updating it at every callsite
72775a80bfbcc1b7c7ab06827f1caf6722195a9d: this is already being done in the ui view, forgot to do it in the export. i'll deduplicate this when i build the intermediary format.
1649da70a899fa90ad3ced2a37ff1d8e726b0a16: turns out blender 3.6 doesn't support custom UNSIGNED_BYTEs, but does support UNSIGNED_SHORT so hey there we go i guess
e9628afaf84ac8afc24eaeddc5a92f12c00e3f2f: blender 3.6's material handling doesn't really know what to do if you give it a specular tint but no factor, and ends up exporting invalid gltf data. this just adds the specular factor (which is almost always 1.0) to the gltf + spec texture, which at least means the blender material isn't bugging out. this does make it look a bit... shiny in 3.6, but it's fine in 4.0 and frankly if that's a problem it's easy to fix in blender.
triage number goes brr
UNSIGNED_BYTE
s, but does supportUNSIGNED_SHORT
so hey there we go i guess