| Requirement | A requirement creates and holds a  abstract class Requirement<T : Any!> | 
| ServiceRequirement | open class ServiceRequirement<T : Any!> : Requirement<T> | 
| SessionRequirement | open class SessionRequirement : Requirement<Session!> |