Shader Graph is a visual node editor that compiles to shader code, so you can build and prototype materials without writing HLSL.
The editor layout, creating nodes, and the input/output types.
Blend mode, shading model, and domain: the settings that decide how the resulting shader is drawn.
Constants, exposing values to the Material Editor, and reading them from code.
Make your own node types with subgraphs or C#.