Description of the bug:
The VRCSDK 3.5.3-beta.2 contains several breaking changes to public API so it MUST be 3.6.0.
As I suggested and you declared in the Developer Update, the current VRCSDK is using x.y.z where y will be incremented if the changes are breaking ones。
Here's incomplete list of breaking changes:
  • VRC.SDKBase.Validation.ShaderValidation
    class is removed and methods are moved to
    VRC.SDKBase.Validation.ValidationUtils
    class (as described in the changelog).
Removing (including moving) public API is the most popular type of breaking change.
  • Some methods of
    VRC.SDKBase.Validation.ValidationUtils
    have added optional parameters (as described in the changelog).
This change is not huge as the previous since it will not break the existing source code and only breaks pre-compiled DLLs.
  • The
    VRC.SDKBase.Validation.ShaderValidation
    class has been moved from
    VRC.SDKBase.asmdef
    assembly to
    VRCSDKBase.dll
This change is exactly the same as removing
VRC.SDKBase.Validation.ShaderValidation
class from
VRC.SDKBase.asmdef
and re-adding
VRC.SDKBase.Validation.ShaderValidation
to
VRCSDKBase.dll
.
For assembly definitions, we have to declare which assemblies (including DLLs if Auto Referenced is disabled) are referenced.
I think it's relatively rare but we can reference
VRC.SDKBase.asmdef
and not
VRCSDKBase.dll
in previous codes.
In addition, this change breaks pre-compiled DLLs because pre-compiled DLLs will distinguish also with assembly names.