Shader graph always uses _ADDITIONAL_LIGHTS_VERTEX keyword by default

Hi guys, I noticed that all shaders created with ShaderGraph have _ADDITIONAL_LIGHTS_VERTEX by default, and it only changes to _ADDITIONAL_LIGHTS keyword if there is some additional lights in the scene (Point LIght, Secondary dir light or spot light). What is the logic behind that? Why all shader graph shaders have this keyword? Can I see the code somewhere? Tried to find it in URP package code but I didn’t succeeded. Thanks!

Late response, but anyone found this post and If you used URP,
URP asset Lighting section’s additional lights part define _ADDITIONAL_LIGHTS_VERTEX and
_ADDITIONAL_LIGHTS.
_VERTEX indicates to calculate additional light in vertex or fragment shader, corresponding to “Per Vertex” and “Per Pixel” options.
In short, if you are using more than one light in the scene and enabled additional lights in URP assets, these keywords will be defined and shader will calculate light differently by the keywords.

related post: LWRP questions

hey, thanks for reply. I understand what you said. My question is why shader graph shaders have _ADDITIONAL_LIGHTS_VERTEX enabled by default even when there is no single additional light in scene. Like if you see simple unity cube keywords when there is no additional light in the scene, you see it doesn’t have any keywords enabled, but gameobject which has material of shader graph shader has _ADDITIONAL_LIGHTS_VERTEX enabled. And if there is an additional light in the scene both of them have _ADDITIONAL_LIGHTS or _ADDITIONAL_LIGHTS_VERTEX keywords enabled depending on the urp asset settings.