Violet v0.11: Improved multi-platform support & Conversational Flow Language

This release builds on the previous one, by improving support for Google Dialogflow. On top of this, it adds support for a higher level Conversational Flow Language to ease Voice App development, and provides hooks to integrate it with application logic.

This release specifically has three main improvements:

Platform Independent Types When building for multiple platforms (Amazon Alexa and Google Dialogflow) there was a need to support input types (within user speech) in a platform independent manner. This allows easier development without needing to worry about platform specifics and maps types to platform native ones when needed. Currently supported types include: number, date, time, phoneNumber, firstName, and phrase.

Conversational Flow Language Over the last few months we have learned that the code behind voice-apps can easily devolve into Spaghetti Code - primarily because of the significant amount of state-management code. In trying to help with this, we have worked with multiple teams to understand common voice conversational flows. We have used these and lessons from Web Apps to implement a Conversational Flow Language.

Support for Separation of Conversational and App Logic In order to help unravel the Spaghetti Code in Voice Apps we have added support for Conversational Flow to be defined separately from the Application Logic.