One note of incongruity: the boy narrating the story is clearly grown by the time he tells it, yet his voice is still a boy's. I am sure that this was a deliberate decision and am curious about it.
It is not for kids, not for anyone who has to have everything happy at the end. Yet there is that redemption in it that we want.
I give it many stars.