It looks like the API leaks the .value JSON element into the API, which means the developer needs to call .getValue() in a few different places.
Ideally this should be handled when the JSON is parsed, so a developer can call something like:
userProfileFormValue.form()
instead of:
userProfileFormValue.form().getValue();