Names: Icon, Color, Tone, Side, Method, Command, Zone, Event

Where notesy's API takes one of a fixed set of names (an icon of notesy's, a theme color, a button's tone), a script gives an enum instead of text, so a name that's wrong doesn't compile, and an editor that knows Rune can offer the rest. They're at the top of notesy:

rustuse notesy::{commands, status, view, Color, Command, Icon, Side, Tone};

pub fn ready() {
    let row = view::row(Icon::ArrowRight, "Record the demo video");
    row.color = Color::Accent;
    let button = view::button("Sync now");
    button.tone = Tone::Primary;
    let sync = status::add("sync");
    sync.set(#{ text: "Synced", icon: Icon::Check, side: Side::Left, color: Color::Success });
    commands::run(Command::ToggleSidebar);
}
Enum For Some of them
Icon notesy's own icons, wherever an icon is named Icon::Check, Icon::File, Icon::Folder, Icon::Tag, Icon::Calendar, Icon::Clock, Icon::Link, Icon::Pin, Icon::Bulb, Icon::Alert, Icon::Info, Icon::ArrowRight, Icon::Plugin, and the formatting bar's own Icon::Bold, Icon::Italic, Icon::Heading, Icon::BulletList, Icon::Table …
Color a theme's colors, wherever a color is named Color::Accent, Color::Success, Color::Warning, Color::Danger, Color::Text, Color::TextMuted, Color::TextFaint, Color::Heading, Color::Link, Color::Tag, Color::CalloutTip …
Tone a button's, or a pill's Tone::Plain, Tone::Soft, Tone::Primary, Tone::Danger, Tone::Tag
Side a status item's, and which way a hover card opens (card_at) Side::Left, Side::Right, Side::Above, Side::Below
Method a request's (notesy::net) Method::Get, Method::Post, Method::Put, Method::Patch, Method::Delete, Method::Head, Method::Options
Command notesy's own commands, for commands::run Command::NewNote, Command::OpenToday, Command::ToggleSidebar, Command::CommandPalette, Command::Bold …
Zone places in notesy's window a plugin can hang something in, for zones::add (notesy::zones) Zone::NoteMenu, Zone::EditorMenu, Zone::TitlebarLeft, Zone::BoardTray, Zone::DrawingTray, Zone::NotesHeading …
Event what events::on takes, and every event's kind (notesy::events) Event::NoteSaved, Event::AnyNote …
KeySource where a key went (key.source, notesy::events) KeySource::Editor, KeySource::Board, KeySource::Palette …
Key which key it was (key.which, with keys.which, notesy::events) Key::A, Key::Num7, Key::Escape, Key::ArrowUp, Key::F5, Key::ShiftLeft …

Every variant is notesy's name for it written in CamelCase: the icon arrow-right is Icon::ArrowRight, the color text_muted is Color::TextMuted, the command tabs.close_others is Command::CloseOtherTabs (the Keybindings page lists every command).

What the plugin names itself stays text: its own icons ("chart"), its own colors, its settings' and store's keys, its commands' and panels' keys. Text for notesy's names still works too, checked as the script runs.

Every page