good to see your posts here.
i'll jump in with comments, but there are several others on this list that can contribute to the convo
1) "H-Factor Complete" is not really a goal. formats are _designed_ to support (or not support) selected factors/affordances. While UBER scores well, it is pretty abstract and tough to program against. I have not run into many APIs that use it. And HAL, while a "low scorer" for H-Factots is one of the most popular of the new formats.
My advice is to chronicle what factors you need in the message (rather than in code) and use that as your guide for picking a format. And be prepared to change to (or add) other formats as you gain more experience. There is no "one ring to rule them all."
2) desiging the API (based on actions, object, data, etc.) is always an art, not a science. i, personally, find that modeling actions (or user-stories) results in a more rich design that covers lots of edge cases. it can also prevent ppl from falling into the "entity service" anti-pattern. i have been using McLarty's Service Canvas in the last year or so to help with this.
3) i favor encapulating the domain semantics (bounded context) in an ALPS document and mapping that to the foramt in use. since some formats will have more/less h-factor elements, i then fill in the missing pieces by mapping the semantics to the client code. the more ricth the format, the less domain-specific the client code (and vice versa).
hope this helps.