I would sub-type [`MLUtils.AbstractDataContainer`](https://github.com/JuliaML/MLUtils.jl/blob/387b371287d00ce7e40a1be092db0dc4ad624b58/src/observation.jl#L75) to get some sensible defaults like `Base.iterate` defined on top of the MLUtils.jl interface.