Uses of Enum

Packages that use BlockFace
Classes used to manipulate the voxels in a world, including special states.
Generalized BlockData classes.
Specific BlockData classes relevant to only a given block or set of blocks.
Interfaces for non-voxel objects that can exist in a world, including all players, monsters, projectiles, etc.
Events relating to when a block is changed or interacts with the world.
Events relating to entities, excluding some directly referencing some more specific entity types.
Events relating to players.
Classes that represents various voxel types and states.
Classes relevant to specific material types.
Multi and single purpose classes to facilitate various programmatic concepts.