adoptClient abstract method

Future<KernelClientConnection> adoptClient({
  1. required String id,
  2. required Client client,
})

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,
});