A syndicate is a party with tradable items.
Syndicate details
@type catalog() :: [String.t()]
@type id() :: atom()
@type name() :: String.t()
@type syndicate() :: %{ required(name :: String.t()) => String.t(), required(id :: String.t()) => atom() | String.t(), required(catalog :: String.t()) => [String.t()] } | [name: String.t(), id: atom(), catalog: [String.t()]]
@type t() :: %Shared.Data.Syndicate{catalog: catalog(), id: id(), name: name()}
@spec new(syndicate()) :: t()