The standard unit of data exchange.
Every step receives and returns Param structs (or lists/tuples of them). It carries the payload and metadata.
The purpose of this module is to abstract parameter handling and define a consistent
interface for data exchange. This standardization allows developers using Orchid
to focus on their business logic rather than the details of data flow management.
Summary
Types
@type name() :: term()
@type payload() :: raw_payload() | ref_payload()
@type raw_payload() :: any() | nil
@type t() :: %Orchid.Param{ metadata: map(), name: name(), payload: payload(), type: param_type() }