fix to reject field names, starting with numeric chars or non-string keys