Hi @graham , yes thanks for your comment!
Some cyclers store time as a millisecond integer to avoid accumulation of errors due to floating-point precision issues. I think this is more important during the measurement itself, when errors can accumulate over a long time. But for serializing to a global interoperable format, it’s best to stick to community-standard units and the precision of converting integer to decimals should be ok.
Handling of units is also an important consideration. That’s why we’ve built in lots of support to parse and convert units. These will be included in a python package that we’ve been working on. Check out the units notebook here. As you mention, we build on top of pint to easily handle unit conversions in python. On the simplest level, you can just strip the unit from the preferred label or the machine name and use that in pint directly. We also have units encoded in the application ontology and the table schema for semantic operations. So hopefully this will provided robust redundancy to handle units. What do you think?