1@README.md
2
3- `rmcp` types stay out of the public API. `CommandServer`, `ServerIdentity`,
4  `CommandTool` and the error types are this crate's own; a consumer that has
5  to `use rmcp::…` means something is missing here.
6- The enum must be internally tagged (`#[serde(tag = "…")]`). Reflection reads
7  the tag's `const` from each variant's schema and refuses an enum without
8  one (`ReflectError::UntaggedVariant`) rather than guessing a name.
9- A handler's `Err` and a call with bad arguments are tool results with
10  `is_error`, not protocol errors, so the model sees the message and can
11  correct the call. Only an unknown tool name is a protocol error.
12- The `rmcp` pin is the `deizel/rust-sdk` fork; the reason is beside the pin
13  in `../Cargo.toml`.