structure packing

* factor out `parseInt`
* add bitfield to enum members instead of packing the enum type (yields
1-byte enums as intended originally)