You can clone with
Cannot retrieve contributors at this time
The type infrastructure, eg. RootType and the Data classes, are only asportable as the Binary and Typeable instances. The latter in particularis not terribly portable (it is even brittle under some innocuousrefactorings). I can't think of any *provable* way to solve this, nor any fullydistributed way. But a decent solution would be to add a member toData:class Data a where desc :: DataDesc a version :: StringWith the requirement that two types with the same version are serialcompatible (versions should also be unique across types). Thus if youmake a change to the Binary representation, you are responsible forupdating the version.There are a couple challenges:* For existing modules, if we define version on their behalf, we will have a hard time keeping up with updates. That is, the dependencies of the package that defines these have to be pretty strict.* For new modules, making sure that there are no name collisions.There may be a better solution assuming an Udon package manager though (since we can reference modules and ranges of modules directly).===================The implementation of the main Udon library is too coupled. I don'twant to export the DataDesc constructor, the unsafe* functions aboutExtRefs, and a host of other things. Thoughtful cleanup is needed.