HTTP-family execution intent.
The payload fields below envelope are frozen as the minimal Wave 1 lane
surface, but their detailed semantics stay provisional until Wave 3.
Summary
Types
@type t() :: %ExecutionPlane.Contracts.HttpExecutionIntent.V1{ body: term() | nil, contract_version: String.t(), egress_surface: map(), envelope: ExecutionPlane.Contracts.ExecutionIntentEnvelope.V1.t(), headers: map(), request_shape: String.t(), retry_class: String.t() | nil, stream_mode: String.t(), timeouts: map() }