pub trait ValidAction<State, Input> {
type Filter: StateFilter<State, Input>;
type Output;
// Required method
fn with_valid_input(
self,
state: State,
valid: <Self::Filter as StateFilter<State, Input>>::ValidOutput,
) -> Self::Output;
}