The FILE form of a Port. Saved .dgm files hold ids as strings - uuids in old files,
integers written as strings in new ones - while the in-memory types hold integers; the
converters below are where one becomes the other. Field names match the in-memory type
exactly, so the on-disk JSON is unchanged by the int move.