By changing the indexer, we change the layout, without touching existing user code, and without having to modify structs and (consequently) struct accesses across an entire codebase, since our accessors / indexers are type-agnostic.
My current implementation is presumably similar to any struct parser / compiler setup. We start to crystallise the struct, in order to compactcompacting bitfields, padpadding and alignaligning to key widths in memory widths. (This begins to take away some control from indexers, which may be part of my problem.)