I've written up a short blogpost about the T.init issue.
It is not very enthusiastic. https://medium.com/@feepingcreature/d-structs-dont-work-for-domain-data-c09332349f43 Related links:https://github.com/dlang/phobos/pull/6594 problem with T.init and toString
https://github.com/dlang/phobos/pull/6619 Nullable can't work with types where T.init violates invariants
https://github.com/dlang/dmd/pull/8462 A somewhat sketchy PR to disable invariant on struct ~this
