Consumer-to-node admitted interactive lifecycle.
start/2 owns admission and returns only opaque execution/session identity.
Implementations must not expose provider or transport process identifiers.
Summary
Callbacks
@callback cancel(ExecutionPlane.ExecutionRef.t(), keyword()) :: :ok | {:error, term()}
@callback end_input(ExecutionPlane.ExecutionRef.t(), keyword()) :: :ok | {:error, term()}
@callback send_input(ExecutionPlane.ExecutionRef.t(), iodata() | map(), keyword()) :: :ok | {:error, term()}
@callback start(ExecutionPlane.Admission.Request.t(), keyword()) :: {:ok, ExecutionPlane.ActiveExecution.t()} | {:error, term()}
@callback status(ExecutionPlane.ExecutionRef.t(), keyword()) :: {:ok, ExecutionPlane.Runtime.Status.t()} | {:error, term()}
@callback subscribe(ExecutionPlane.ExecutionRef.t(), pid(), keyword()) :: :ok | {:error, term()}