nit: instead if this line:

    return new Future.value(event.data['response']);

you can write this:

    return event.data['response'];

Because you're in a `.then`, the future that called you will automatically wrap your return value in a `Future`. Similarly, if you were to throw an exception from inside the `.then`, the calling future would complete with a Future.fromError.