> It's important to remember that unlike the old API ...

Leave the old API out of this, unless we are specifically referring to a regression in features.

Giving *null* for blockface as an indicator for if the voxel's occupied volume collided with the ray-trace is bad API-design, especially when there is no logical leap to defining the blockface from the voxel itself. Define me a situation where the blockface of intersection violates the blockface of the containing voxel - therein lies the only justification.

@Wolvereness (excuse my monologue response)
> Torches

Okay, so do we handle torch's BlockFace.EAST when the voxel's intersection was BlockFace.NORTH? The documentation sucks if that's the case.

So, is TargetFace defined by the voxel or the occupants?

* By voxel implies there should always exist a target-face, and overloading the meaning of *null* is ridiculous
 * We have an opportunity to make API that doesn't suck
 * This is just another *gotcha*
* By occupants implies there should be both
 * Better documentation
 * Another target face for voxel-intersection