A shading node plug-in is written as a Maya Dependency Graph Node. A basic shading node contains attributes that are treated as inputs and outputs, where each shading node must have an output so that it can be connected in the Dependency Graph.