public struct ConditionalActionRequest<FeatureType, ActionType> where FeatureType : ConditionalFeature, ActionType : Action

A type used to prevent direct execution of actions on ConditionalFeature(s), such that ActionSession only has functions to perform actions using ConditionalActionRequest and not a perform() using a ConditionalActionBinding.

The protocol extensions on ConditionalFeature only supports request and not perform, forcing the caller to test if the feature is available first and at least explicitly ignore the feature not available path, but hopefully provide a code path for that.