Unfortunately, a $ref comes in place of everything else, so it’s impossible to combine a $ref and a nullable property. This is a known issue in the OpenAPI community.
The suggested approach is to use the nullable + allOf approach, which is exactly what we do.
Many openapi client generators support this pattern, and will output the expected nullable struct in their generated client code.