error[E0277]: the trait bound `UndeclaredDynamic: DeclaresPublish<_>` is not satisfied
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:14:24
   |
14 |             .publisher(api::topic::new().component("base").motor("left").command())
   |              --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
   |              |
   |              required by a bound introduced by this call
   |
help: the trait `DeclaresPublish<_>` is not implemented for `UndeclaredDynamic`
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:7:1
   |
 7 | struct UndeclaredDynamic {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^
note: required by a bound in `phoxal::participant::SetupContext::<R>::publisher`
  --> src/participant/context.rs
   |
   |     pub async fn publisher<B>(&self, topic: Topic<Publish<B>>) -> crate::Result<Publisher<B>>
   |                  --------- required by a bound in this associated function
...
   |         R: DeclaresPublish<B>,
   |            ^^^^^^^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`

error[E0277]: the trait bound `UndeclaredDynamic: DeclaresPublish<phoxal_api::y2026_1::component::motor::Command>` is not satisfied
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:13:22
   |
13 |           let _motor = ctx
   |  ______________________^
14 | |             .publisher(api::topic::new().component("base").motor("left").command())
   | |___________________________________________________________________________________^ unsatisfied trait bound
   |
help: the trait `DeclaresPublish<phoxal_api::y2026_1::component::motor::Command>` is not implemented for `UndeclaredDynamic`
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:7:1
   |
 7 | struct UndeclaredDynamic {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^
note: required by a bound in `phoxal::participant::SetupContext::<R>::publisher`
  --> src/participant/context.rs
   |
   |     pub async fn publisher<B>(&self, topic: Topic<Publish<B>>) -> crate::Result<Publisher<B>>
   |                  --------- required by a bound in this associated function
...
   |         R: DeclaresPublish<B>,
   |            ^^^^^^^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`

error[E0277]: the trait bound `UndeclaredDynamic: DeclaresPublish<phoxal_api::y2026_1::component::motor::Command>` is not satisfied
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:15:14
   |
15 |             .await?;
   |              ^^^^^ unsatisfied trait bound
   |
help: the trait `DeclaresPublish<phoxal_api::y2026_1::component::motor::Command>` is not implemented for `UndeclaredDynamic`
  --> tests/trybuild/fail/undeclared_dynamic_handle.rs:7:1
   |
 7 | struct UndeclaredDynamic {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^
note: required by a bound in `phoxal::participant::SetupContext::<R>::publisher`
  --> src/participant/context.rs
   |
   |     pub async fn publisher<B>(&self, topic: Topic<Publish<B>>) -> crate::Result<Publisher<B>>
   |                  --------- required by a bound in this associated function
...
   |         R: DeclaresPublish<B>,
   |            ^^^^^^^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`
