---@meta -- Generated from native/src/runtime/runtime.cpp. Do not edit. -- The firmware loads /.lua/main.lua into every fresh state and calls these on the -- table it returns. Where apps live, what surrounds them and which of these an app -- itself sees are all main.lua's to decide, which is why an app composes the -- classes for the features it handles: -- -- ---@class PaintApp : App, TouchHandlers -- -- The firmware does not clear the frame before calling draw(), and commits changed -- display content after each callback batch using the panel's own refresh policy. -- Timer callbacks are registered directly with timer.after/every. ---@class App ---@field home? string The route sys.back() lands on once history is empty. ---@field data? string The sys.getAppDataPath() template whose ? is the app id. ---@field start fun(route: string, arg?: string) Required. Mounts the route; failing here leaves no app running. ---@field draw? fun(deltaMs: integer) Optional frame loop, called once after start and then at most 30 FPS, best effort.