Add static asserts
Use EnumChain
Add stub for CommonOriginalType