First pass of interpreter for declarative handlers

Object.keys are random in order. The only case where you can use [0] in a meaningful way is if there is no or a single key in the object.