Added parameter `engineVersion` and check
Choose first restore record by default
Implement asynchronous restorer

- Callbacks
- Complete error handler through chat events
- OnShow fixes