feat(character): add character struct

the character struct is a representation of either a player character
or a non-player character.