nmos::make_connection_rtp_sender() for unicast RTP receivers
nmos::make_connection_rtp_sender() uses nmos::details::make_connection_rtp_receiver_core_constraints() and nmos::details::make_connection_rtp_receiver_staged_core_parameter_set().
Those functions always insert the multicast_ip transport parameter.
To support creation of Receivers that only support RTP unicast, those three functions could take a bool multicast or nmos::transport transport and omit it if unicast. (The nmos::make_connection_rtp_sender() function should be a second overload or have a default arg of true / nmos::transports::rtp_mcast.)
There is a slightly gnarlier issue to be resolved due to the fact that nmos::get_session_description_transport_params() (via nmos::details::set_multicast_ip_interface_ip()) always writes multicast_ip into the returned parameters. I suspect that at the point in nmos::details::handle_connection_resource_patch (in connection_api.cpp) that the returned params from the transport file are merged into the transport parameters, this will cause an error "patch error - unexpected object field".
Good found will investigate a solution for it.