# Consumer contract
`K1RustCoding` is the synchronous, exclusively caller-owned orchestration boundary for one user's K1 Rust cache, local registry, projection, and Podman runner. Independent instances share no coding-layer lock. Stateful operations require `&mut self`; authorization gates are passed per operation and never retained.
`RustCodingConfig::new` validates nonempty values supplied in `RustCodingConfigValues`. `open` opens the user cache, registry, and runner and atomically enforces the exact registry Cargo configuration while rejecting symlink or nonfile configuration state. `reset` retains configuration and projection identity while replacing disposable cache state and reopening the registry.
`admit_library` checks sticky family admission before authorization or projection access, exact-loads the requested version, independently resolves every exact K1 dependency by `LibraryId`, and installs the closure. Denial and absence are concealed as `DependencyUnavailable`; authorization failures remain distinct. Every new registry install advances the cache registry generation.
`check` admits and materializes the candidate, resolves dependencies, and reuses only an exact source, lock, registry, projection cursor, image, toolchain, check-policy, target, and command-policy receipt. A miss returns complete fetch and check diagnostics and records success only after offline checking. `publish` checks, requests uncached publish authorization immediately before projection publication, installs nonconflicting completed outcomes locally, and reports post-effect failures through `AfterPublish`. `build_binary` checks and returns the exact `rust-bins/<authority>/<name>/<version>/<binary>` path and diagnostics.
`RustCodingError` distinguishes state, authorization infrastructure, concealed dependency unavailability, publish denial, structural Podman errors, and completed publication effects. There is no discovery, Access implementation, retry, background work, host Cargo, cross-user state, deployment, or live-service behavior.