Currently, the remote protocol specification states it uses on_create_entity.
In practice, it does not. build.restore_packed_circuits2 is called and skips remote interface call, thus ignoring all events except for script_raised_revive. This knowledge cost me > 1d of hard debugging.