jersmi that seems more like there is an already existing variable named Color in the shader code. Could you try renaming the port to to inputColor? I also think that variables shouldn't start with a capitalized letter, but I'm unsure if that matters for this application.
how did you set the data types of Crosshair (Cursor) and Pointer (Cursor) on the select latest?
Connect the "Select Latest" to the cursor input port, and the inputs of the select node will be set to the correct type. As long as a node is written to be generic, and the input makes sense for the application, this should happen. I assume the "Select..." group of nodes are among the few that support most (if not all) types.
I think there isn't a system wide bool for the pressed status, especially with the force-press pads used now. The "Pressed" output fires one event when the pad/button is pressed, and the "Released" output fires one event when the button is released. The "Select Latest" then fires one event with the value from whatever input port got the latest event. Kind of a riff on an old trick when dealing with stubborn lighting console vendors that don't want to implement different MIDI modes like toggle so that you'll have to spend a couple $10k more on a console for a single button.
The wiring of what is what is arbitrary, and I could have made that part more clear (straight cables). The "Change Mouse Cursor" is also arbitrary, but is a quick way to check if the comp works with boolean values without involving layers or any other things. There is no event flow through this other than when a button/pad is pressed/released which is neat.
If “TIME” is capitalized and it is working, it is not the same “time” variable that corresponds with the protocol input port for time, it appears to be a value that the shader can receive via standard uniforms, without receiving any data via ports.
What I am trying to understand is, when a shader is created this way, there are these time, width and height ports existing as part of the protocol. How do I get these exact port values into the shader to work with?
The time port, the TIME variable along with width and height are in a way just arbitrary input ports. If you save your shader to the library, they will work as regular input ports for their type, and they won't act on anything unless they get some sort of data/event. However, when you edit/run the shader in the shader editor, these values will be provided to you through those ports. If you run the code I first posted, and change the width/height of the rendering window the green amount will be decided by that relationship. In short, I think they are pre-defined uniforms that are reserved for the editor so that it can take over those for easier programming :)