There is a problem in designing a class system.
There is an abstract class "Member", which can send information in the form of an abstract class "Request" to other "Participants". There is also a hierarchy of heirs from the "Participant" and a hierarchy of heirs from the "Request", each with its own behavior. The problem is that the exchange of requests is implemented at the level of the base class “Member”, which knows only about the methods and properties of the base class “Request”. Consequently, realizing the heirs from the "Participant", and wanting to gain access to the additional fields of the heirs of the "Request", you will have to deal with type casting, which indicates that the model is flawed.
How to organize it more gently?