Type alias for state-like types.
It can either be a TypedDict, dataclass, or Pydantic BaseModel.
Note: we cannot use either TypedDict or dataclass directly due to limitations in type checking.
StateLike: TypeAlias = TypedDictLikeV1 | TypedDictLikeV2 | DataclassLike | BaseModel