appendPropertyChange

abstract fun <T> appendPropertyChange(id: Id, tag: PropertyTag, serializer: KSerializer<T>, value: T)
abstract fun appendPropertyChange(id: Id, tag: PropertyTag, value: Boolean)


abstract fun appendPropertyChange(id: Id, tag: PropertyTag, value: UInt)

There's a bug in kotlinx.serialization where decodeFromDynamic() is broken for UInt values larger than MAX_INT. For example, 4294967295 is incorrectly encoded as -1. We work around that here by special casing that type.

https://github.com/Kotlin/kotlinx.serialization/issues/2713