new API looks good. It might make sense for fields to be a key in context instead of top level
we also want it in the accept and context commands
parsing needs to be aware of fields, so eventually it has to go into a ContextValue.
The alternatives are extending Example, or let the client tag the utterance. It seems to me that putting more stuff into ContextValue is the best of the 3. Just a heads up, let me know if you have opinions on this.