returns the type or throws RuntimeException("Unsupported type")
return the size of the item in bytes.
If type terminates a line, then use \n to delineate
read the next value from the buffer and return the double representation.
write the next value, represented as a double and interpreted with Units, to the buffer.