A method for caching and presenting an interactive menu for disparate applications, the method implemented by a computer system, the method comprising: determining, by a menu application of the computer system, a data template that (i) is defined for a first target application of the computer system, (ii) identifies types of content of the first target application to be cached, and (iii) associates each type with one or more presentation states, the first target application being a system application or a user application and being different from the menu application; storing, by the menu application and based on the data template, data of the first target application in a cache of the menu application, the data comprising first content or a first uniform resource identifier, URI, of the first content, the data further comprising second content or a second URI of the second content, the first content being of a first type identified in the data template and associated in the data template with a first presentation state and with a second presentation state, the second content being of a second type identified in the data template and associated in the data template with the second presentation state, the cache storing different data for different target applications of the computer system based on different templates defined for the different target applications; receiving, from an input device, a user input requesting the interactive menu; presenting, by the menu application, the interactive menu on a display, the interactive menu comprising windows that are presented in the first presentation state and that correspond to the different target applications, the windows comprising a first window that corresponds to the first target application and that is populated with the first content based on the data from the cache of the menu application and based on the data template; receiving, from the input device, a user interaction with the first window requesting the second presentation state; generating, by the menu application, a copy of the data of the first target application from the cache based on the user interaction with the first window; sending, by the menu application to a window application of the computer system, the copy of the data of the first target application, the window application being different from the menu application and the first target application; and presenting, by the window application and on the display, a second window that corresponds to the first target application, the second window presented in the second presentation state and populated by the window application with the first content and the second content based on the copy of the data and based on the data template. determining, by a menu application of the computer system, a data template that (i) is defined for a first target application of the computer system, (ii) identifies types of content of the first target application to be cached, and (iii) associates each type with one or more presentation states, the first target application being a system application or a user application and being different from the menu application; storing, by the menu application and based on the data template, data of the first target application in a cache of the menu application, the data comprising first content or a first uniform resource identifier, URI, of the first content, the data further comprising second content or a second URI of the second content, the first content being of a first type identified in the data template and associated in the data template with a first presentation state and with a second presentation state, the second content being of a second type identified in the data template and associated in the data template with the second presentation state, the cache storing different data for different target applications of the computer system based on different templates defined for the different target applications; receiving, from an input device, a user input requesting the interactive menu; presenting, by the menu application, the interactive menu on a display, the interactive menu comprising windows that are presented in the first presentation state and that correspond to the different target applications, the windows comprising a first window that corresponds to the first target application and that is populated with the first content based on the data from the cache of the menu application and based on the data template; receiving, from the input device, a user interaction with the first window requesting the second presentation state; generating, by the menu application, a copy of the data of the first target application from the cache based on the user interaction with the first window; sending, by the menu application to a window application of the computer system, the copy of the data of the first target application, the window application being different from the menu application and the first target application; and presenting, by the window application and on the display, a second window that corresponds to the first target application, the second window presented in the second presentation state and populated by the window application with the first content and the second content based on the copy of the data and based on the data template.