Current contract
- `int` maps to `int64_t`, `float` maps to `double`, and `char` maps to `uint8_t`.
- Pointers are pointer-sized and 8-byte aligned on the current x64 release targets.
- Struct fields are laid out in declaration order with C-style alignment and tail padding.
- Fixed arrays are inline struct storage and keep the element alignment.