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()}