Changing field patterns depending on the field visibility settings

Here is an interesting behavior of the data in the fields, while changing the visibility of some of the essence (persona for example). In a typical situation when the permissions to visibility are not limited, the field looks like this.

     "person_id": {
        "name": "test name",
        "email": [
                "label": "work",
                "value": "",
                "primary": true
        "phone": [{"value": "", "primary": true}],
        "value": 7
    "active_flag": true,
    "person": {
        "id": 7,
        "company_id": 22222,
        "owner_id": {
            "id": 1111,
            "name": "Integrations team",
            "email": "",
            "has_pic": true,,
            "active_flag": true,
            "value": 22222

If you hide a person from the user, it will look like this.

    "person_id": 55,
    "active_flag": true,
    "person": [],

In this case, fields is problematic to interpret uniformly. Are there any recipes for working with this?

Hey @Derfirm,

Perhaps you could explain more what you’re trying to do. If a User (their API) has limited access to see a Person, etc - then this result makes sense to me.
Were you thinking that it should say something like ‘hidden’ or something similar?

Thx @David for you reply!
In general, I would like to understand whether it makes sense to try to parse these fields at all. My clients want to see data about the Deal, for example, in a third-party system and, unfortunately, it is not quite obvious to me how to deal with this. I would also like to know about other cases that change schema (or type) of the field.