Update for new features

- Change enum JSON to struct JSON
- Add enum Type
- Add setter
- Add literal convertible
- Add unit test