### Operation state concept

    template<class O>
      concept operation_state =
        destructible<O> &&
        is_object_v<O> &&
        requires (O& o) {
          { execution::start(o) } noexcept;
        };

An object whose type satisfies `operation_state` represents the state of an asynchronous operation. It is the result of calling `execution::connect` with a `sender` and a `receiver`.

`execution::start` may be called on an `operation_state` object at most once. Once `execution::start` has been invoked, the caller shall ensure that the start of a non-exceptional invocation of one of the receiver's completion-signalling operations strongly happens before [intro.multithread] the call to the `operation_state` destructor.

The start of the invocation of `execution::start` shall strongly happen before [intro.multithread] the invocation of one of the three receiver operations.

`execution::start` may or may not block pending the successful transfer of execution to one of the three receiver operations.