advisor_id() :: Tai.Advisor.id()
config() :: map()
group_id() :: Tai.AdvisorGroup.id()
mod() :: atom()
product() :: Tai.Venues.Product.t()
run_store() :: Tai.Advisor.run_store()
spec_opts() :: [ group_id: group_id(), advisor_id: advisor_id(), products: [product()], config: config(), store: run_store(), trades: trades() ]
t() :: %Tai.Advisors.Spec{ advisor_id: advisor_id(), config: config(), group_id: group_id(), mod: mod(), products: [product()], run_store: run_store() | nil, start_on_boot: boolean(), trades: trades() | nil }
trades() :: list()
to_child_spec(t()) :: {mod(), spec_opts()}