adoptClient abstract method
Adopt a client the HOST already holds, under id.
One device, one connection. A host that opens a device for its own screens and then also names it as a composition origin must not dial it twice: many embedded boards serve a single peer, so the second dial is refused and the user sees a device that "sometimes will not open". Even where a second link is allowed it splits subscriptions and health tracking across two links to the same device.
The adopted connection does NOT own client — closing it deregisters
only. Whoever opened the client keeps the right to end it, which for a
user-facing host is an explicit action (an app's Close), not a side
effect of leaving a screen.
Implementation
Future<KernelClientConnection> adoptClient({
required String id,
required Client client,
});