IOperationExecutor
AddMvvmExpress registers OperationExecutor. AsyncModelCommand, ExecuteBusyAsync, and app services can share one pipeline: busy + cancellation + timeout + retry + debounce / throttle + concurrency + Outcome. That is not a Polly clone and not a ReactiveCommand clone. HTTP resilience still belongs in Plugin.Maui.ApiResilience.
CanExecute
→ concurrency (Prevent | CancelPrevious | Queue | Allow | Replace)
→ debounce / throttle
→ timeout
→ retry
→ execute
→ IsRunning / error sink / Outcome
await executor.RunAsync(ct => catalog.ListAsync(ct), new OperationOptions
{
Timeout = TimeSpan.FromSeconds(15),
RetryCount = 2,
Concurrency = ConcurrencyMode.Prevent,
}, ct);