Hello @Blommetje,
Being able to specify non-primitive values for subroutine parameters was a workaround that we offered in order to better support API calls from web hooks or other external parties in the past. Since it is often the case that it's not possible to influence the structure of the request bodies for these calls. This was always an exception that only applied to subroutines.
Since then, we have added support for Custom API process flows. These process flows can accept nearly any type of HTTP request, even if the request body isn't even JSON, but XML for example, or something else entirely. We have written a two-part blog about this feature, which used to be called “message-protocol independent process flow”.
If you convert your process flow to a Custom API process flow (don't forget to add the /open/ segment in the URL when calling the process flow!), you will be able to use non-primitive JSON properties again. Note that it will be up to you to parse the JSON body in a process procedure though, but SQL Server offers some nice functions for this.
I hope this helps.