phoxal 0.24.0

Phoxal - production-oriented autonomous robot framework: the runtime engine and model (the api contract tree lives in phoxal-api, the typed bus in phoxal-bus).
Documentation
error[E0271]: type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:50:38
   |
50 |         let _foreign = ctx.publisher(topic).await?;
   |                            --------- ^^^^^ type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
   |                            |
   |                            required by a bound introduced by this call
   |
note: expected this to be `Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:27:16
   |
27 |     type Api = ForeignApi;
   |                ^^^^^^^^^^
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
   |     where
   |         B: ContractBody<Api = R::Api>,
   |                         ^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`

error[E0271]: type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:50:24
   |
50 |         let _foreign = ctx.publisher(topic).await?;
   |                        ^^^^^^^^^^^^^^^^^^^^ type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
   |
note: expected this to be `Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:27:16
   |
27 |     type Api = ForeignApi;
   |                ^^^^^^^^^^
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
   |     where
   |         B: ContractBody<Api = R::Api>,
   |                         ^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`

error[E0271]: type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:50:45
   |
50 |         let _foreign = ctx.publisher(topic).await?;
   |                                             ^^^^^ type mismatch resolving `<ForeignBody as ContractBody>::Api == Api`
   |
note: expected this to be `Api`
  --> tests/trybuild/fail/wrong_api_version_setup_builder.rs:27:16
   |
27 |     type Api = ForeignApi;
   |                ^^^^^^^^^^
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
   |     where
   |         B: ContractBody<Api = R::Api>,
   |                         ^^^^^^^^^^^^ required by this bound in `SetupContext::<R>::publisher`