---@meta -- Generated from native/src/runtime/runtime.cpp. Do not edit. -- The firmware loads the path it was booted with 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 that file'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 start fun(args?: table) Required. Mounts whatever the arguments describe; 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.