Field types should be strings instead of integers to allow extensions adding new field types without conflicts. This bug is needed to fix bug 372966, so should block it.
Strings won't help. You can still get conflicts with names. And this would break all existing code relying on integers.