Releases everything. The engine is unusable afterwards.
@override Future<void> dispose() async { disposed = true; await _controller.close(); }