Shadows not being collected?

I’m trying to write a shader that only collects/displays shadow data - but for some reason it is displaying as flat white. What on earth am I missing here?

Shader "Shadow Composition"
{
    Properties
    {
        _Color("Background Color (RGB)", Color) = (1,1,1,1)
    }

    SubShader
    {
        Tags { "RenderType"="Opaque" "Queue" = "Geometry" }
       
        Pass
        {
            Tags { "LightMode" = "ForwardBase" }
           
            ZWrite On
            Cull Off
           
            CGPROGRAM

            #pragma vertex VertexFunction
            #pragma fragment FragmentFunction

            #include "AutoLight.cginc"
           
            float4 _Color;
           
            //----------------
           
            struct VertexInput {
                float4 vertex : POSITION;
            };
           
            struct VertexToFragment {
                float4 position : SV_POSITION;
                LIGHTING_COORDS(0,1)
            };
           
            struct FragmentOutput {
                float4 color : COLOR;
            };
           
            //----------------
           
            VertexToFragment VertexFunction (VertexInput input) {
                VertexToFragment output;
                output.position = mul(UNITY_MATRIX_MVP, input.vertex);
                TRANSFER_VERTEX_TO_FRAGMENT(output);
                return output;
            }
           
            FragmentOutput FragmentFunction (VertexToFragment input) {
                FragmentOutput output;
                output.color = LIGHT_ATTENUATION(input);
                return output;
            }

            ENDCG
        }
    }
}

I think it’s the fallback, you need a fallback that has the shadow caster and shadow collector passes, the default diffuse should do