Understand the `TimeArray` data structure
masterA TimeArray is the core time series type in TimeSeries.jl. It represents a collection of data points associated with specific timestamps. It is composed of four primary fields:
timestamp: A sortedVectorofTimeType(typicallyDateorDateTime). Timestamps must be sequential; non-sequential dates will cause construction to fail.values: AnAbstractArraycontaining the actual data. The number of rows invaluesmust exactly match the length of thetimestampvector. All elements invaluesmust share the same type.colnames: AVector{Symbol}providing names for each column invalues. The length must match the column count ofvalues. If duplicate names are provided, the constructor automatically appends_n(e.g.,name,name_1,name_2) to ensure uniqueness for indexing.meta: A field for arbitrary metadata (defaults tonothing). It can holdStrings or custom user-defined types to store object-level information.
struct TimeArray{T,N,D<:TimeType,A<:AbstractArray{T,N}} <: AbstractTimeSeries{T,N,D}
timestamp::Vector{D}
values::A
colnames::Vector{Symbol}
meta::Any
end