Optionalexchange?: stringOptionalcurrency?: stringProvenance is mandatory: a report must always be able to say where each datum came from.
Optionalidentifiers?: { isin?: string; cusip?: string; figi?: string }Optionaldividends?: {Optionalsplits?: { exDate: string; numerator: number; denominator: number }[]Optionalfundamentals?: {when the payload is not a chart response, carries a
chart.error (Yahoo's "symbol not found / delisted" shape), has an empty
or missing result, or lacks the timestamp/quote arrays — i.e. when there
is provably nothing to parse. Anything merely IMPERFECT (null bars,
missing adjclose/events) is tolerated instead of throwing.
Converts a Yahoo chart API v8 payload into the canonical dataset.
requestedSymbolis the fallback when the payload's meta omits the symbol, and it makes error messages actionable.