@cfxlabsinc/b2b-services
    Preparing search index...
    CachedSolanaBalanceTimeseriesItem: Omit<
        SolanaBalanceTimeseriesItem,
        "timestamp"
        | "aggregate",
    > & { aggregate: string; timestamp: string }

    L2 round-trips through JSON, so timestamp (Date) arrives as a string and aggregate (BigNumber) loses its runtime shape on cross-process / post-L1 reads. Store a JSON-safe projection and rehydrate on read.

    Non-JSON-native fields: timestamp (Date↔ISO string) and aggregate (BigNumber↔string). localDate is already a plain string and rides unchanged.