There’s quite a bit of depth to your shaders. One could spend eternity tweaking them. In your docs you mention how all the channels of a shader are outputting values. Do they all output the same type, or do some output a color value, others a float, etc?
Hahahaha - Yes!- Ages of fun 
My intent with that explanation was, to show that basically everything is just values that you can use with everything else in a node based system, since a lot of people think that a “color” is somehow mystically different from a “bump” value, although it is all just the same numbers in the end, just three instead of one.
All AoN:studio-nodes have at least 4 outputs (besides the default Opacity that messiah always creates). The “Color” outputs output three float-values (normally between 0.0 and 1.0) for R, G and B while all other outputs (Alpha, Value, Bump) deliver single float-values. (internally I use doubles for higher precision).
messiah converts that stuff on the fly, so you don’t have to worry much most of the time. You can plug a value into a color and messiah will use it as a greyscale color. The other way around, messiah will use the average of the three color values.
But if you - for instance - plug a color output (red dot) into a vector input (yellow dot -> size, offset, rotation), each color component affects an axis (red->X, green->Y, blue->Z) so you can control them independently. And don’t fear to enter a color like RGB(10000, -2000, 8) if you need that as an offset/rotation/whatever value for another shader.
Internally these are structs that you access with .x, .y, .z or .r, .g, .b. and that messiah translates 1:1 into each other.
Back on the subject of SDK functionality…you mentioned there is no geometry creation in messiah, but what would prevent someone from writing a plug-in modeler? If it provided all the tools for creating and modifying geometry couldn’t it just rely on messiah for persisting the data?
That is a good example about how unbelievable limited the SDK is in that area: You can’t create geometry (there is no way to tell messiah to create a vertex, an edge, a polygon, so your modeler would be unable to do that). You can’t create any interactive tools (manipulation handles etc.). You can’t even select points or polys of existing geometry in the interface.
That is also the reason why you can’t write an object importer yourself. You can read the data no problem but there is no way to make a visible object from that.
Otherwise we would see a lot more plugins I think.
Best regards,