# API
Open a `Service` with the managed Rust-library source root, Web-library source
and publication roots, and Rust-binary source and publication roots, plus a
crates.io token for Rust-library publication and an object-store adapter for
Rust-binary call payloads. The Web source and publication roots must be
disjoint. Call `execute` with a hidden session ID, one of the exported tool
names, and a JSON argument value. Call `release` when the session ends.
`web_libraries_root()` returns the source root.
`web_publications_root()` returns the immutable Web publication root for the
integrating HTTP router.
`ToolExecution.text` is the exact model-facing result.
`ToolExecution.snapshot` is present when a managed source box must be created or
updated. Rust-binary call text is not parsed or reformatted; returned payload
object IDs are appended one per line.