FormBindingKind : app renders the bound Orvanta app as the task’s form, exactly as orvanta:formRef does. fields deliberately keeps the declared-fields fallback: it grants nothing and changes no behaviour, and exists only to turn "nobody has looked at this key" into "somebody looked and the declared fields are right" – which is why its reason is mandatory. There is no fail kind, because an unresolved form key still leaves a completable task.
app renders the bound Orvanta app as the task’s form, exactly as orvanta:formRef does. fields deliberately keeps the declared-fields fallback: it grants nothing and changes no behaviour, and exists only to turn "nobody has looked at this key" into "somebody looked and the declared fields are right" – which is why its reason is mandatory. There is no fail kind, because an unresolved form key still leaves a completable task.