1. We do not design an interface that goes beyond the framework of the existing Unity3D ShaderGUI.
2. One Shader is used, but the interface should be able to determine the type.
3. ROOT TYPE and SUBTYPE are provided.
1. You will have to think about the structural design a little longer.