error[E0277]: the trait bound `DirectionMismatch: DeclaresPublish<_>` is not satisfied
  --> tests/trybuild/fail/direction_mismatch.rs:23:38
   |
23 |         let _publish = ctx.publisher(api::topic::new().drive().target()).await?;
   |                            --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
   |                            |
   |                            required by a bound introduced by this call
   |
help: the trait `DeclaresPublish<_>` is not implemented for `DirectionMismatch`
  --> tests/trybuild/fail/direction_mismatch.rs:14:1
   |
14 | struct DirectionMismatch {
   | ^^^^^^^^^^^^^^^^^^^^^^^^
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 `DirectionMismatch: DeclaresPublish<phoxal_api::y2026_1::drive::Target>` is not satisfied
  --> tests/trybuild/fail/direction_mismatch.rs:23:24
   |
23 |         let _publish = ctx.publisher(api::topic::new().drive().target()).await?;
   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
   |
help: the trait `DeclaresPublish<phoxal_api::y2026_1::drive::Target>` is not implemented for `DirectionMismatch`
  --> tests/trybuild/fail/direction_mismatch.rs:14:1
   |
14 | struct DirectionMismatch {
   | ^^^^^^^^^^^^^^^^^^^^^^^^
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 `DirectionMismatch: DeclaresPublish<phoxal_api::y2026_1::drive::Target>` is not satisfied
  --> tests/trybuild/fail/direction_mismatch.rs:23:74
   |
23 |         let _publish = ctx.publisher(api::topic::new().drive().target()).await?;
   |                                                                          ^^^^^ unsatisfied trait bound
   |
help: the trait `DeclaresPublish<phoxal_api::y2026_1::drive::Target>` is not implemented for `DirectionMismatch`
  --> tests/trybuild/fail/direction_mismatch.rs:14:1
   |
14 | struct DirectionMismatch {
   | ^^^^^^^^^^^^^^^^^^^^^^^^
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`
