init
Initialises and sets a value of this schema from a given value fromValue to be stored by the form manager, sending events about the initialisation of the value through eventsBus. The provided path represents the path of the value being initialised within the form manager. The value must be set via setValue, which should always be called.
Initialisation events should be emitted "bottom up": this means that an event signaling the initialisation of a parent value must only be emitted after all events signaling the initialisation of its children. As a side effect of this, implementations of init may bail when their coroutine context is no longer active (meaning that the coroutine was cancelled due to another operation that "overrides" this operation) and perform less work than necessary (e.g. when initialising a list, we may stop initialising more elements).