I'd like to normalize some irregular JSON objects. Attached is a transformation that works but I'm not sure that I'm approaching it the right way...

In this (completely contrived) example I've got 2 users who are tracking features and bugs on 2 branches of a project (alpha and beta). A users' "focus" entry refers to whether the user is focused on the alpha or beta branch. Keys under alpha and beta may or may not exist. For example in the source data below, user 100 is missing a features entry under beta.

Here's the input.json file I'm transforming:

Code:
[    {
        "userId": "100",
        "focus" : "alpha",
        "alpha": {
            "features": ["alpha 100 ft 1", "alpha 100 ft 2", "alpha 100 ft 3"],
            "bugs": ["alpha 100 bug 1"]
        },
        "beta": {
            "bugs": ["beta 100 bug 1"]
        }
    },
    {
        "userId": "200",
        "focus" : "beta",
        "alpha": {
            "features": ["alpha 200 ft 1", "alpha 200 ft 2"]
        },
        "beta": {
            "features": ["beta 200 ft 1", "beta 200 ft 2"],
            "bugs": ["beta 200 bug 1", "beta 200 bug 2"]
        }
    }
]
What I'm trying to determine - is the approach I've taken here typical for extracting and normalizing information from irregular JSON objects?

JsonXform2.ktr