I've been working with your code a lot lately and created quite a few custom field types. There is quite a bit of duplicate code in those fields and so I wanted to ask if you could add an interface and a base class for Field types. You could add an interface like this:
interface JsnFieldInterface
{
public static function create($alias);
public static function delete($alias);
public static function getSearchInput($field);
public static function getSearchQuery($field, $query);
public static function getXml($item);
public static function loadData($field, $user, $data);
public static function storeData($field, $data, $storeData);
}
The base class could implement most of those methods and the fieldtypes would override those again where necessary. You could name it JsnFieldHelper.