Development notes:

Possible Optimization:
	The shaded lights can be kept as an array instead of a linked list.

Possible Optimization:
	Omit uniform variables from the shading language.
	Treat all variables as varyings.

