Inputs the Dockerfile renderer needs. All fields come from the project
(rust-toolchain.toml, Cargo.toml, on-disk dirs, deploy metadata) and are
fully resolved by the caller — render_dockerfile itself does no I/O.
Phase 156 §6 (D-16/D-21): resolve the ferro-cli version to pin in the
types-gen Docker stage. Parses the project’s Cargo.lock for the
ferro-rs package; falls back to the current binary’s own version
(env!("CARGO_PKG_VERSION")) when the lockfile is absent or has no
ferro-rs entry. Never returns an empty string.