Nice!
Can you compare it to https://github.com/paularmstrong/normalizr ?
const { result, entities: clerk } = normalize(data, Character)
This evaluates to true:
clerk.character[1].location[1] === clerk.location[1]
So, you can still access your data directly via your reducers, while accessing it via nesting in your components.