Better validation at compile time would benefit many types, not just those expressible by integer literals. The groundwork is being laid for this with compile-time constant expressions.
Once built out, one imagines that simply adding @compilerEvaluable
to the initializer would get you the diagnostics you want. I don't see a role for additional protocols.