     public internal(set) var coreProperties: CoreProperties = (nil, .white, 1.0)
     var publicationState: LoadingState<PublicationId, PublicationModel> = .unloaded
     var pagesState: LoadingState<PublicationId, [PageModel]> = .unloaded
-    var hotspotsState: LoadingState<PublicationId, [HotspotModel]> = .unloaded
+    var hotspotsState: LoadingState<PublicationId, [IndexSet: [HotspotModel]]> = .unloaded
     
     var currentViewState: ViewState = .initial
     

        return false
    }
    public var foregroundColor: UIColor {
        return .white
        // TODO: calculate based on bgColor
    }
    
    // Get the properties for a page, based on the pages state

        init(coreProperties: CoreProperties,
             publicationState: LoadingState<PublicationId, PublicationModel>,
             pagesState: LoadingState<PublicationId, [PageModel]>,
             hotspotsState: LoadingState<PublicationId, [IndexSet: [HotspotModel]]>) {
            
            switch (publicationState, pagesState, hotspotsState) {
            case (.error(_, let error), _, _),
