Currently, offset and message.blockLength are specified as unsignedInt (32-bit) while type.length is nonNegativeInteger which is by spec "unbounded" which I guess can be treated as "at least 64-bit". In this way offset is unable to represent the full range of potential sizes. I think:
- They should have the same type.
- Maybe it makes sense to use
unsignedLong (64-bit) to make it more specific rather than vague nonNegativeInteger which doesn't impose any limitation.