Validated configuration for a Guppy.App coordinator.
Configuration is plain Elixir data. use Guppy.App may provide defaults and
an app module may implement Guppy.App.init/1 to return the final config;
Guppy validates the final shape instead of owning complex merge semantics.
Summary
Types
@type t() :: %Guppy.App.Config{ app_badge: String.t() | nil, commands: %{optional(String.t()) => Guppy.App.Command.t()}, dock_menu: [map()], exit_on_last_window_closed: boolean(), id: String.t(), keymap: [map()], menus: [map()], metadata: map(), package: map(), stylesheet: Guppy.App.Stylesheet.t(), theme: Guppy.App.Theme.t() | nil, theme_families: %{optional(String.t()) => Guppy.App.ThemeFamily.t()}, windows: [Guppy.App.WindowSpec.t()] }