interface homepage { enum capability { remove-other, set-stylesheet, } /// The request format to add or remove an app from the homepage. You must have messaging /// access to `homepage:homepage:sys` in order to perform this. Serialize using serde_json. variant request { /// the package and process name will come from request source. /// the path will automatically have the process_id prepended. /// the icon is a base64 encoded image. add(add-request), /// remove ourself from homepage (message source will be item removed) remove, /// remove another app from homepage /// using this requires RemoveOther capability /// app store uses this to remove apps on uninstall remove-other(string), /// set the stylesheet for the homepage /// using this requires SetStylesheet capability /// settings:settings:sys uses this to set the stylesheet set-stylesheet(string), } record add-request { label: string, icon: option, path: option, widget: option, } } world homepage-sys-v1 { import homepage; include process-v1; }