== imachine{,_replay} api == label * -> function jump_out -> seen_scenes & call call -> call seen_scene(scene) -> return label in seen_scenes int attraction_* path_end(chr, is_good) iscene(name, is_h, is_end) -> promise ✓ act_op(movie) -> promise imenu(choice) -> promise == script api == chars: in ui_settings.rpy e.g. his(text) -> promise with(transition, action) -> promise play(stream, name, fade) stream: sound,music,ambient == prefs == h-scenes (tied to shrinkwrap) fullscreen? webp (default on chrome/opera, off on others or webpjs) text speed auto delay music/sfx vol skip unread skip after choice == context menu == show image, scrollback, skip, auto, options == save/load == passive: seen_scenes active: track attraction