Using commands to set the render state of the GPU before it executes a shader program, or to perform an operation involving another Pass. See ShaderLab: commands.
Exposing properties from your shader code so you can edit them in the material Inspector and save as part of a material asset. See ShaderLab: defining material properties.
Defining fallback behavior for when Unity cannot run any of the SubShaders with a Shader object on the current hardware. See ShaderLab: assigning a fallback.