One solution to this is a function you would write that validates the properties, and prevents saving if they are invalid. You would want to use it in a buffer/directory hook.
For example:
(defun validate-properties ()
(goto-char (point-min))
(catch 'error
(while (re-search-forward org-heading-regexp nil t)
(let ((v (org-entry-get (point) "NUMERIC")))
(when v
;; Let's say we only allow +/- integers
(if (string-match "\\`[-+]?[0-9]+\\'" v)
nil
(error "Non-integer value found: %s" v)
(throw 'error nil)
nil))))))
(add-hook 'write-file-functions 'validate-properties t)
You could use a different function for floats, or to make sure a value was one of a few allowed options...
This only works if you only edit the files through emacs, and if everyone is setup so this is automatically loaded in the directory, etc. An alternative place to put something like this is in a git hook, if you have your project in a git repo. you would have to figure out how to write a script that would run emacs to do this kind of thing. But, then you could make sure no invalid files were commited, for example.
John
-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803