A strategy for selling a product.
Strategy details
@type description() :: String.t()
@type id() :: atom()
@type name() :: String.t()
@type strategy() :: %{ required(name :: String.t()) => String.t(), required(id :: String.t()) => atom(), required(description :: String.t()) => String.t() } | [name: String.t(), id: atom(), description: String.t()]
@type t() :: %Shared.Data.Strategy{description: description(), id: id(), name: name()}
@spec new(strategy()) :: t()