The HudsonApp interface
Every Hudson app implements a single TypeScript interface. The shell reads your Provider, slots, and hooks — and renders the rest.
interface HudsonApp {
id: string;
name: string;
Provider: React.FC;
slots: { Content, LeftPanel?, Inspector? };
hooks: { useCommands, useStatus, ... };
}