[INFO] cloning repository https://github.com/Sir-NoChill/open-civ-vi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Sir-NoChill/open-civ-vi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSir-NoChill%2Fopen-civ-vi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSir-NoChill%2Fopen-civ-vi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7b1d8185d3402568189fea7843448d0064aad2e2
[INFO] testing Sir-NoChill/open-civ-vi against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSir-NoChill%2Fopen-civ-vi" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Sir-NoChill/open-civ-vi
[INFO] finished tweaking git repo https://github.com/Sir-NoChill/open-civ-vi
[INFO] tweaked toml for git repo https://github.com/Sir-NoChill/open-civ-vi written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Sir-NoChill/open-civ-vi on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Sir-NoChill/open-civ-vi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ulid v1.2.1
[INFO] [stderr]   Downloaded endian-type v0.1.2
[INFO] [stderr]   Downloaded nibble_vec v0.1.0
[INFO] [stderr]   Downloaded fd-lock v4.0.4
[INFO] [stderr]   Downloaded rustyline v15.0.0
[INFO] [stderr]   Downloaded radix_trie v0.2.1
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded wasm-bindgen-test-shared v0.2.114
[INFO] [stderr]   Downloaded minicov v0.3.8
[INFO] [stderr]   Downloaded wasm-bindgen-test-macro v0.3.64
[INFO] [stderr]   Downloaded wasm-bindgen-test v0.3.64
[INFO] [stderr]   Downloaded tokio-tungstenite v0.28.0
[INFO] [stderr]   Downloaded tungstenite v0.28.0
[INFO] [stderr]   Downloaded typed-builder-macro v0.20.1
[INFO] [stderr]   Downloaded leptos v0.7.8
[INFO] [stderr]   Downloaded throw_error v0.2.0
[INFO] [stderr]   Downloaded reactive_stores v0.1.8
[INFO] [stderr]   Downloaded typed-builder v0.20.1
[INFO] [stderr]   Downloaded reactive_stores_macro v0.1.8
[INFO] [stderr]   Downloaded hydration_context v0.2.1
[INFO] [stderr]   Downloaded tachys v0.1.9
[INFO] [stderr]   Downloaded or_poisoned v0.1.0
[INFO] [stderr]   Downloaded convert_case v0.7.1
[INFO] [stderr]   Downloaded guardian v1.3.0
[INFO] [stderr]   Downloaded convert_case v0.6.0
[INFO] [stderr]   Downloaded reactive_graph v0.1.8
[INFO] [stderr]   Downloaded drain_filter_polyfill v0.1.3
[INFO] [stderr]   Downloaded server_fn v0.7.8
[INFO] [stderr]   Downloaded server_fn_macro_default v0.7.8
[INFO] [stderr]   Downloaded server_fn_macro v0.7.8
[INFO] [stderr]   Downloaded next_tuple v0.1.0
[INFO] [stderr]   Downloaded gloo-utils v0.2.0
[INFO] [stderr]   Downloaded linear-map v1.2.0
[INFO] [stderr]   Downloaded html-escape v0.2.13
[INFO] [stderr]   Downloaded leptos_macro v0.7.9
[INFO] [stderr]   Downloaded any_spawner v0.2.0
[INFO] [stderr]   Downloaded serde_qs v0.13.0
[INFO] [stderr]   Downloaded either_of v0.1.8
[INFO] [stderr]   Downloaded xxhash-rust v0.8.15
[INFO] [stderr]   Downloaded const_format v0.2.35
[INFO] [stderr]   Downloaded leptos_server v0.7.8
[INFO] [stderr]   Downloaded syn_derive v0.2.0
[INFO] [stderr]   Downloaded oco_ref v0.2.1
[INFO] [stderr]   Downloaded codee v0.3.5
[INFO] [stderr]   Downloaded attribute-derive v0.10.5
[INFO] [stderr]   Downloaded attribute-derive-macro v0.10.5
[INFO] [stderr]   Downloaded quote-use-macros v0.8.4
[INFO] [stderr]   Downloaded leptos_dom v0.7.8
[INFO] [stderr]   Downloaded const_str_slice_concat v0.1.0
[INFO] [stderr]   Downloaded gloo-net v0.6.0
[INFO] [stderr]   Downloaded derive-where v1.6.0
[INFO] [stderr]   Downloaded toml v0.9.12+spec-1.1.0
[INFO] [stderr]   Downloaded serde_spanned v1.0.4
[INFO] [stderr]   Downloaded rstml v0.12.1
[INFO] [stderr]   Downloaded quote-use v0.8.4
[INFO] [stderr]   Downloaded leptos_config v0.7.8
[INFO] [stderr]   Downloaded pathdiff v0.2.3
[INFO] [stderr]   Downloaded manyhow v0.11.4
[INFO] [stderr]   Downloaded manyhow-macros v0.11.4
[INFO] [stderr]   Downloaded proc-macro-utils v0.10.0
[INFO] [stderr]   Downloaded interpolator v0.5.0
[INFO] [stderr]   Downloaded config v0.15.19
[INFO] [stderr]   Downloaded leptos_hot_reload v0.7.8
[INFO] [stderr]   Downloaded collection_literals v1.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2b3846934e54eb04b7c3abfd8032b5c0d6a9d0036c2bb0fc47de09ed9c7c46f3
[INFO] running `Command { std: "docker" "start" "-a" "2b3846934e54eb04b7c3abfd8032b5c0d6a9d0036c2bb0fc47de09ed9c7c46f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b3846934e54eb04b7c3abfd8032b5c0d6a9d0036c2bb0fc47de09ed9c7c46f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b3846934e54eb04b7c3abfd8032b5c0d6a9d0036c2bb0fc47de09ed9c7c46f3", kill_on_drop: false }`
[INFO] [stdout] 2b3846934e54eb04b7c3abfd8032b5c0d6a9d0036c2bb0fc47de09ed9c7c46f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8f95f940e1a72605afd9a52b15ed1eced4768d7a6883028386f403603149082c
[INFO] running `Command { std: "docker" "start" "-a" "8f95f940e1a72605afd9a52b15ed1eced4768d7a6883028386f403603149082c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling pollster v0.3.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling libhexgrid v0.1.0 (/opt/rustwide/workdir/libhexgrid)
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling rustyline v15.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling open4x-protocol v0.1.0 (/opt/rustwide/workdir/open4x-protocol)
[INFO] [stderr]    Compiling libciv v0.1.0 (/opt/rustwide/workdir/libciv)
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling open4x-client-web v0.1.0 (/opt/rustwide/workdir/open4x-client-web)
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling open4x-sdk v0.1.0 (/opt/rustwide/workdir/open4x-sdk)
[INFO] [stderr]    Compiling open4x-server v0.1.0 (/opt/rustwide/workdir/open4x-server)
[INFO] [stderr]    Compiling open4x-cli v0.1.0 (/opt/rustwide/workdir/open4x-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s
[INFO] running `Command { std: "docker" "inspect" "8f95f940e1a72605afd9a52b15ed1eced4768d7a6883028386f403603149082c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f95f940e1a72605afd9a52b15ed1eced4768d7a6883028386f403603149082c", kill_on_drop: false }`
[INFO] [stdout] 8f95f940e1a72605afd9a52b15ed1eced4768d7a6883028386f403603149082c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 35b95b3dd5d6c52747b176295ce9689c867473eb0e49b7c5d029a000300a2b57
[INFO] running `Command { std: "docker" "start" "-a" "35b95b3dd5d6c52747b176295ce9689c867473eb0e49b7c5d029a000300a2b57", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.114
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.64
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]    Compiling wasm-bindgen-test-shared v0.2.114
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.114
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling libhexgrid v0.1.0 (/opt/rustwide/workdir/libhexgrid)
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling libciv v0.1.0 (/opt/rustwide/workdir/libciv)
[INFO] [stderr]    Compiling open4x-protocol v0.1.0 (/opt/rustwide/workdir/open4x-protocol)
[INFO] [stderr]    Compiling js-sys v0.3.91
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling open4x-client-web v0.1.0 (/opt/rustwide/workdir/open4x-client-web)
[INFO] [stderr]    Compiling open4x-sdk v0.1.0 (/opt/rustwide/workdir/open4x-sdk)
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.64
[INFO] [stderr]    Compiling wasm-bindgen-test v0.3.64
[INFO] [stderr]    Compiling open4x-server v0.1.0 (/opt/rustwide/workdir/open4x-server)
[INFO] [stderr]    Compiling open4x-cli v0.1.0 (/opt/rustwide/workdir/open4x-cli)
[INFO] [stdout] warning: fields `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub rome_id:          CivId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub rome_id:          CivId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CivId` and `GameStateDiff`
[INFO] [stdout]  --> libciv/tests/tourism.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use libciv::{BuiltinVictoryCondition, CivId, DefaultRulesEngine, GameStateDiff};
[INFO] [stdout]   |                                       ^^^^^                      ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub rome_id:          CivId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `babylon_city`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_city`, `rome_warrior`, `babylon_city`, `babylon_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_id`, `babylon_city`, `babylon_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_warrior`, `warrior_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `babylon_city`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_city`, `babylon_city`, `babylon_warrior`, `warrior_type`, and `settler_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub rome_id:          CivId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GameState` and `UnitTypeId`
[INFO] [stdout]  --> libciv/tests/domination_victory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     GameState, RulesEngine,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 8 |     UnitCategory, UnitDomain, UnitId, UnitTypeId,
[INFO] [stdout]   |                                       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GreatWorkSlot`
[INFO] [stdout]   --> libciv/tests/domination_victory.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | use libciv::civ::great_works::{GreatWorkSlot, GreatWorkSlotType};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `libciv::game::victory::VictoryKind`
[INFO] [stdout]   --> libciv/tests/domination_victory.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use libciv::game::victory::VictoryKind;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `def2`
[INFO] [stdout]   --> libciv/tests/domination_victory.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let def2 = spawn_strong_unit(&mut s, babylon_id, HexCoord::from_qr(10, 5), 50);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_def2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rome_id`
[INFO] [stdout]    --> libciv/tests/domination_victory.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let rome_id = s.rome_id;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rome_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rome_id`
[INFO] [stdout]    --> libciv/tests/domination_victory.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let rome_id = s.rome_id;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rome_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub rome_id:          CivId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GreatPersonType`
[INFO] [stdout]  --> libciv/tests/civ_abilities.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 |     CivId, DefaultRulesEngine, GreatPersonType, RulesEngine,
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Civilization` and `Leader`
[INFO] [stdout]   --> libciv/tests/civ_abilities.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use libciv::civ::{BasicUnit, Civilization, Leader};
[INFO] [stdout]    |                              ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_city`, `babylon_id`, `babylon_city`, `warrior_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `babylon_city` is never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pottery_cost`
[INFO] [stdout]    --> libciv/tests/civ_abilities.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let pottery_cost = s.state.tech_tree.get(pottery_id).unwrap().cost;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pottery_cost`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_city`, `rome_warrior`, `babylon_city`, `babylon_warrior`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_amphitheater` is never used
[INFO] [stdout]   --> libciv/tests/cultural_victory.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn register_amphitheater(s: &mut common::Scenario) -> BuildingId {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_city`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `builder_type` is never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_city`, `babylon_id`, `babylon_city`, `babylon_warrior`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub rome_city:        CityId,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub babylon_id:       CivId,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 44 |     pub babylon_city:     CityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `category`, `combat_strength`, `health`, and `charges` are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rome_warrior`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stdout]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Scenario {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub rome_warrior:     UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stdout] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_turn` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl SpawnUnit {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 38s
[INFO] running `Command { std: "docker" "inspect" "35b95b3dd5d6c52747b176295ce9689c867473eb0e49b7c5d029a000300a2b57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35b95b3dd5d6c52747b176295ce9689c867473eb0e49b7c5d029a000300a2b57", kill_on_drop: false }`
[INFO] [stdout] 35b95b3dd5d6c52747b176295ce9689c867473eb0e49b7c5d029a000300a2b57
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cc7519fef0609013e0e7322ffc3ecd1a8c49f07a3444cee486898a4979cf1adf
[INFO] running `Command { std: "docker" "start" "-a" "cc7519fef0609013e0e7322ffc3ecd1a8c49f07a3444cee486898a4979cf1adf", kill_on_drop: false }`
[INFO] [stderr] warning: fields `rome_warrior`, `babylon_warrior`, `warrior_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `advance_turn` is never used
[INFO] [stderr]    --> libciv/tests/common/mod.rs:132:8
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub fn advance_turn(s: &mut Scenario) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_move` is never used
[INFO] [stderr]    --> libciv/tests/common/mod.rs:147:8
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub fn apply_move(state: &mut GameState, diff: &libciv::GameStateDiff) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> libciv/tests/common/mod.rs:200:12
[INFO] [stderr]     |
[INFO] [stderr] 181 | impl SpawnUnit {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn civilian(unit_type: UnitTypeId, owner: CivId, coord: HexCoord) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn domain(mut self, domain: UnitDomain) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub fn movement(mut self, movement: u32) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub rome_id:          CivId,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub rome_id:          CivId,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `libciv` (test "territory") generated 4 warnings
[INFO] [stderr] warning: `libciv` (test "climate") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "science_victory") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "combat_terrain") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `babylon_city` is never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CivId` and `GameStateDiff`
[INFO] [stderr]  --> libciv/tests/tourism.rs:8:39
[INFO] [stderr]   |
[INFO] [stderr] 8 | use libciv::{BuiltinVictoryCondition, CivId, DefaultRulesEngine, GameStateDiff};
[INFO] [stderr]   |                                       ^^^^^                      ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub rome_id:          CivId,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_city`, `babylon_city`, `babylon_warrior`, `warrior_type`, and `settler_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `builder_type` is never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_warrior`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `libciv` (test "victory") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "full_game") generated 2 warnings (1 duplicate)
[INFO] [stderr] warning: `libciv` (test "tourism") generated 5 warnings (4 duplicates) (run `cargo fix --test "tourism" -p libciv` to apply 1 suggestion)
[INFO] [stderr] warning: `libciv` (test "power") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "diff_serde") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "rock_band") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "builder") generated 3 warnings (2 duplicates)
[INFO] [stderr] warning: `libciv` (test "gameplay") generated 2 warnings (1 duplicate)
[INFO] [stderr] warning: `libciv` (test "projects") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "diff_consolidation") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "trade") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: fields `rome_city`, `babylon_id`, `babylon_city`, `warrior_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_warrior`, `babylon_id`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `register_amphitheater` is never used
[INFO] [stderr]   --> libciv/tests/cultural_victory.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn register_amphitheater(s: &mut common::Scenario) -> BuildingId {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_warrior`, `babylon_city`, `babylon_warrior`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     /// Shared unit-type IDs (same registry for both civs).
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `GreatPersonType`
[INFO] [stderr]  --> libciv/tests/civ_abilities.rs:6:32
[INFO] [stderr]   |
[INFO] [stderr] 6 |     CivId, DefaultRulesEngine, GreatPersonType, RulesEngine,
[INFO] [stderr]   |                                ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Civilization` and `Leader`
[INFO] [stderr]   --> libciv/tests/civ_abilities.rs:10:30
[INFO] [stderr]    |
[INFO] [stderr] 10 | use libciv::civ::{BasicUnit, Civilization, Leader};
[INFO] [stderr]    |                              ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pottery_cost`
[INFO] [stderr]    --> libciv/tests/civ_abilities.rs:115:9
[INFO] [stderr]     |
[INFO] [stderr] 115 |     let pottery_cost = s.state.tech_tree.get(pottery_id).unwrap().cost;
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pottery_cost`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_city`, `rome_warrior`, `babylon_city`, `babylon_warrior`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `babylon_city`, `warrior_type`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub warrior_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `libciv` (test "era_score") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "ai_simulation") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "save_load") generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "combat_modifiers") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "natural_wonder_discovery") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "congress") generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "governors") generated 3 warnings (2 duplicates)
[INFO] [stderr] warning: `libciv` (test "apply_delta") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "cultural_victory") generated 4 warnings (2 duplicates)
[INFO] [stderr] warning: `libciv` (test "improvements") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "civ_abilities") generated 6 warnings (2 duplicates) (run `cargo fix --test "civ_abilities" -p libciv` to apply 3 suggestions)
[INFO] [stderr] warning: `libciv` (test "ai_agent") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: fields `babylon_city`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_city`, `babylon_id`, `babylon_city`, `babylon_warrior`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `category`, `combat_strength`, `health`, and `charges` are never used
[INFO] [stderr]    --> libciv/tests/common/mod.rs:221:12
[INFO] [stderr]     |
[INFO] [stderr] 181 | impl SpawnUnit {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn category(mut self, category: UnitCategory) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     pub fn combat_strength(mut self, cs: Option<u32>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     pub fn health(mut self, hp: u32) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn charges(mut self, c: u8) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `libciv` (test "replay") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "great_persons") generated 3 warnings (2 duplicates)
[INFO] [stderr] warning: `libciv` (test "religion") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "movement_domain") generated 4 warnings (2 duplicates)
[INFO] [stderr] warning: `libciv` (test "diplomatic_victory") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "religion_spread") generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: unused imports: `GameState` and `UnitTypeId`
[INFO] [stderr]  --> libciv/tests/domination_victory.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     GameState, RulesEngine,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 8 |     UnitCategory, UnitDomain, UnitId, UnitTypeId,
[INFO] [stderr]   |                                       ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `GreatWorkSlot`
[INFO] [stderr]   --> libciv/tests/domination_victory.rs:11:32
[INFO] [stderr]    |
[INFO] [stderr] 11 | use libciv::civ::great_works::{GreatWorkSlot, GreatWorkSlotType};
[INFO] [stderr]    |                                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `libciv::game::victory::VictoryKind`
[INFO] [stderr]   --> libciv/tests/domination_victory.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use libciv::game::victory::VictoryKind;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `def2`
[INFO] [stderr]   --> libciv/tests/domination_victory.rs:83:9
[INFO] [stderr]    |
[INFO] [stderr] 83 |     let def2 = spawn_strong_unit(&mut s, babylon_id, HexCoord::from_qr(10, 5), 50);
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_def2`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rome_id`
[INFO] [stderr]    --> libciv/tests/domination_victory.rs:132:9
[INFO] [stderr]     |
[INFO] [stderr] 132 |     let rome_id = s.rome_id;
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rome_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rome_id`
[INFO] [stderr]    --> libciv/tests/domination_victory.rs:165:9
[INFO] [stderr]     |
[INFO] [stderr] 165 |     let rome_id = s.rome_id;
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rome_id`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_city`, `rome_warrior`, `babylon_city`, `babylon_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub rome_city:        CityId,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rome_warrior`, `babylon_id`, `babylon_city`, `babylon_warrior`, `settler_type`, and `builder_type` are never read
[INFO] [stderr]   --> libciv/tests/common/mod.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Scenario {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub rome_warrior:     UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Babylon — the "opponent" civilisation.
[INFO] [stderr] 43 |     pub babylon_id:       CivId,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 44 |     pub babylon_city:     CityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 45 |     pub babylon_warrior:  UnitId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub settler_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub builder_type:     UnitTypeId,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `libciv` (test "loyalty") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "districts") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "domination_victory") generated 9 warnings (3 duplicates) (run `cargo fix --test "domination_victory" -p libciv` to apply 6 suggestions)
[INFO] [stderr] warning: `libciv` (test "barbarians") generated 4 warnings (3 duplicates)
[INFO] [stderr] warning: `libciv` (test "terrain_features") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "alliances") generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: `libciv` (test "game_state_invariants") generated 4 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.67s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/libciv-f60838d9f03f8a36)
[INFO] [stdout] 
[INFO] [stdout] running 144 tests
[INFO] [stdout] test civ::city_state_defs::tests::test_all_have_envoy_modifiers ... ok
[INFO] [stdout] test civ::city_state_defs::tests::test_all_names_unique ... ok
[INFO] [stdout] test civ::civilization::tests::get_modifiers_war_weariness_applied ... ok
[INFO] [stdout] test civ::civilization::tests::get_tree_modifiers_ignores_non_grant_effects ... ok
[INFO] [stdout] test civ::era::tests::compute_era_age_dark ... ok
[INFO] [stdout] test ai::deterministic::tests::production_queues_unit_when_empty ... ok
[INFO] [stdout] test civ::era::tests::compute_era_age_golden ... ok
[INFO] [stdout] test civ::era::tests::compute_era_age_heroic_after_dark ... ok
[INFO] [stdout] test civ::era::tests::compute_era_age_normal ... ok
[INFO] [stdout] test civ::civilization::tests::get_modifiers_no_war_no_penalty ... ok
[INFO] [stdout] test ai::deterministic::tests::score_explored_not_visible_is_50 ... ok
[INFO] [stdout] test ai::deterministic::tests::score_out_of_bounds_is_min ... ok
[INFO] [stdout] test civ::city_state_defs::tests::test_builtin_city_state_defs_count ... ok
[INFO] [stdout] test civ::city_state_defs::tests::test_geneva_has_not_at_war_condition ... ok
[INFO] [stdout] test civ::city_state_defs::tests::test_type_distribution ... ok
[INFO] [stdout] test ai::deterministic::tests::score_visible_tile_is_10 ... ok
[INFO] [stdout] test ai::deterministic::tests::score_unexplored_tile_is_100 ... ok
[INFO] [stdout] test civ::tourism::tests::cultural_dominance_requires_exceeding_domestic ... ok
[INFO] [stdout] test ai::deterministic::tests::production_prefers_higher_cost_combat_unit ... ok
[INFO] [stdout] test ai::deterministic::tests::unit_moves_toward_unexplored_tile ... ok
[INFO] [stdout] test game::board::tests::test_edge_lookup_both_directions ... ok
[INFO] [stdout] test game::board::tests::test_los_blocked_by_high ... ok
[INFO] [stdout] test civ::civilization::tests::get_tree_modifiers_collects_grant_modifier_from_tech ... ok
[INFO] [stdout] test game::board::tests::test_wraparound_east_west ... ok
[INFO] [stdout] test game::board::tests::test_dijkstra_avoids_impassable ... ok
[INFO] [stdout] test game::board::tests::test_dijkstra_prefers_roads ... ok
[INFO] [stdout] test game::production_helpers::tests::always_available_units_are_producible ... ok
[INFO] [stdout] test game::production_helpers::tests::city_always_available_buildings_with_implicit_city_center ... ok
[INFO] [stdout] test game::production_helpers::tests::city_excludes_already_built_buildings ... ok
[INFO] [stdout] test game::production_helpers::tests::can_produce_unit_respects_gating ... ok
[INFO] [stdout] test game::production_helpers::tests::city_excludes_buildings_missing_required_district ... ok
[INFO] [stdout] test game::production_helpers::tests::city_excludes_buildings_missing_prerequisite ... ok
[INFO] [stdout] test civ::tourism::tests::domestic_tourists_scales_with_culture ... ok
[INFO] [stdout] test game::production_helpers::tests::always_available_buildings_are_producible ... ok
[INFO] [stdout] test civ::era::tests::compute_era_age_dark_even_after_dark ... ok
[INFO] [stdout] test ai::deterministic::tests::agent_is_deterministic_across_two_runs ... ok
[INFO] [stdout] test civ::tourism::tests::cultural_dominance_needs_all_civs ... ok
[INFO] [stdout] test game::production_helpers::tests::city_excludes_mutually_exclusive_buildings ... ok
[INFO] [stdout] test game::production_helpers::tests::city_excludes_queued_buildings ... ok
[INFO] [stdout] test ai::deterministic::tests::production_does_not_replace_existing_queue ... ok
[INFO] [stdout] test game::production_helpers::tests::resolve_replacement_for_rome_swordsman ... ok
[INFO] [stdout] test game::production_helpers::tests::resolve_replacement_no_op_for_generic_civ ... ok
[INFO] [stdout] test game::production_helpers::tests::norway_queues_temple_resolved_to_stave_church_at_completion ... ok
[INFO] [stdout] test game::rules::combat_preview::tests::stronger_attacker_predicts_higher_defender_damage ... ok
[INFO] [stdout] test game::rules::policy_catalogue::tests::slotted_policy_shows_as_active ... ok
[INFO] [stdout] test game::rules::policy_catalogue::tests::fresh_civ_has_all_policies_locked ... ok
[INFO] [stdout] test game::rules::tests::test_adopt_government_sets_id_and_evicts_policies ... ok
[INFO] [stdout] test game::rules::policy_catalogue::tests::unlocking_a_policy_flips_to_available ... ok
[INFO] [stdout] test game::production_helpers::tests::exclusive_unit_not_available_to_wrong_civ ... ok
[INFO] [stdout] test game::production_helpers::tests::rome_queues_swordsman_resolved_to_legion_at_completion ... ok
[INFO] [stdout] test game::rules::combat_preview::tests::out_of_range_returns_none ... ok
[INFO] [stdout] test ai::deterministic::tests::unit_moves_to_smallest_coord_when_all_neighbours_tied ... ok
[INFO] [stdout] test game::production_helpers::tests::unlocked_unit_becomes_available ... ok
[INFO] [stdout] test game::production_helpers::tests::tech_gated_units_not_available_without_unlock ... ok
[INFO] [stdout] test game::rules::combat_preview::tests::melee_preview_predicts_symmetric_damage_when_strengths_match ... ok
[INFO] [stdout] test game::rules::tests::test_assign_citizen_out_of_range_fails ... ok
[INFO] [stdout] test game::rules::tests::test_assign_citizen_adds_worked_tile ... ok
[INFO] [stdout] test game::rules::combat_preview::tests::no_defender_returns_none ... ok
[INFO] [stdout] test game::rules::tests::test_assign_citizen_lock_persists ... ok
[INFO] [stdout] test game::rules::tests::test_assign_policy_not_unlocked ... ok
[INFO] [stdout] test game::rules::tests::test_civilization_capital_computed ... ok
[INFO] [stdout] test game::rules::tests::test_advance_turn_production_accumulates ... ok
[INFO] [stdout] test game::rules::tests::test_compute_yields_uses_worked_tiles ... ok
[INFO] [stdout] test game::rules::tests::test_assign_policy_no_slot ... ok
[INFO] [stdout] test game::rules::tests::test_advance_turn_increments_turn_counter ... ok
[INFO] [stdout] test game::rules::tests::test_declare_war_already_at_war_returns_error ... ok
[INFO] [stdout] test game::rules::tests::test_free_unit_with_registry_spawns_basic_unit ... ok
[INFO] [stdout] test game::rules::policy_catalogue::tests::unknown_civ_yields_empty ... ok
[INFO] [stdout] test game::rules::tests::test_assign_policy_no_government ... ok
[INFO] [stdout] test game::rules::tests::test_compute_yields_resource_tech_gating ... ok
[INFO] [stdout] test game::rules::tests::test_declare_war_same_civ_returns_error ... ok
[INFO] [stdout] test game::rules::tests::test_advance_turn_population_growth_auto_assigns_tile ... ok
[INFO] [stdout] test game::rules::tests::test_advance_turn_population_grows ... ok
[INFO] [stdout] test game::rules::tests::test_free_unit_without_registry_emits_placeholder ... ok
[INFO] [stdout] test game::rules::tests::test_make_peace_no_relation_returns_error ... ok
[INFO] [stdout] test game::rules::tests::test_grievance_triggers_re_exported ... ok
[INFO] [stdout] test game::rules::tests::test_grievance_decay_removes_expired_records ... ok
[INFO] [stdout] test game::rules::tests::test_assign_policy_success ... ok
[INFO] [stdout] test game::rules::tests::test_war_persists_while_opinion_below_minus_50 ... ok
[INFO] [stdout] test game::rules::tests::test_war_weariness_reduces_culture ... ok
[INFO] [stdout] test game::rules::turn_pending::tests::fresh_civ_owes_research_and_civic_choices ... ok
[INFO] [stdout] test game::rules::unit_actions::tests::move_disabled_when_no_movement_remaining ... ok
[INFO] [stdout] test game::rules::tests::test_turns_at_war_increments_each_turn ... ok
[INFO] [stdout] test game::rules::tests::test_make_peace_not_at_war_returns_error ... ok
[INFO] [stdout] test game::rules::tests::test_make_peace_resolves_war_and_emits_delta ... ok
[INFO] [stdout] test game::rules::tests::test_move_unit_full_move ... ok
[INFO] [stdout] test game::rules::tests::test_declare_war_creates_relation_and_emits_delta ... ok
[INFO] [stdout] test game::rules::turn_pending::tests::unknown_civ_yields_empty ... ok
[INFO] [stdout] test game::rules::tests::test_status_transitions_to_denounced_on_grievance ... ok
[INFO] [stdout] test game::rules::tests::test_move_unit_impassable_destination ... ok
[INFO] [stdout] test game::rules::unit_actions::tests::settler_gets_found_city ... ok
[INFO] [stdout] test game::rules::tests::test_war_persists_until_explicit_peace ... ok
[INFO] [stdout] test game::rules::tests::test_move_unit_partial_move ... ok
[INFO] [stdout] test game::rules::turn_pending::tests::victory_progress_returns_one_entry_per_registered_condition ... ok
[INFO] [stdout] test game::rules::unit_actions::tests::builder_with_charges_gets_build ... ok
[INFO] [stdout] test rl::reward::tests::score_delta_negative ... ok
[INFO] [stdout] test rules::effect::tests::eureka_guard_fires_once ... ok
[INFO] [stdout] test game::score::tests::test_all_scores_empty ... ok
[INFO] [stdout] test game::rules::unit_actions::tests::unknown_unit_yields_empty ... ok
[INFO] [stdout] test game::rules::unit_actions::tests::warrior_has_move_attack_fortify_sleep ... ok
[INFO] [stdout] test rl::reward::tests::terminal_win ... ok
[INFO] [stdout] test rl::reward::tests::score_delta_positive ... ok
[INFO] [stdout] test rl::reward::tests::terminal_loss ... ok
[INFO] [stdout] test rules::effect::tests::adopt_government_guard ... ok
[INFO] [stdout] test game::score::tests::test_compute_score_unknown_civ ... ok
[INFO] [stdout] test rules::effect::tests::non_cascading_guard_always_true ... ok
[INFO] [stdout] test rules::policy_defs::tests::test_policy_types_breakdown ... ok
[INFO] [stdout] test rules::policy_defs::tests::test_register_builtin_policies ... ok
[INFO] [stdout] test rules::effect::tests::unlock_policy_guard_fires_once ... ok
[INFO] [stdout] test rules::effect::tests::reveal_resource_guard_fires_once ... ok
[INFO] [stdout] test rules::policy_defs::tests::test_unique_names ... ok
[INFO] [stdout] test rules::modifier::tests::test_modifier_stacking_additive ... ok
[INFO] [stdout] test rules::modifier::tests::test_modifier_stacking_max ... ok
[INFO] [stdout] test rules::modifier::tests::test_modifier_stacking_replace ... ok
[INFO] [stdout] test rules::promotion::tests::test_all_promotion_names_unique ... ok
[INFO] [stdout] test rules::promotion::tests::test_apostle_promotions ... ok
[INFO] [stdout] test rules::policy_defs::tests::test_all_have_modifiers ... ok
[INFO] [stdout] test rules::modifier::tests::test_conditional_modifier_skipped_without_context ... ok
[INFO] [stdout] test rules::promotion::tests::test_builtin_promotions_count ... ok
[INFO] [stdout] test rules::policy_defs::tests::test_policy_count ... ok
[INFO] [stdout] test game::rules::tests::test_research_queue_advances_on_tech_complete ... ok
[INFO] [stdout] test rules::effect::tests::grant_modifier_guard_always_true ... ok
[INFO] [stdout] test world::tile::tests::test_total_yields_all_sources ... ok
[INFO] [stdout] test visualize::tests::test_render_feature_overrides_terrain ... ok
[INFO] [stdout] test rules::promotion::tests::test_tier_0_have_no_prerequisites ... ok
[INFO] [stdout] test visualize::tests::test_render_grassland ... ok
[INFO] [stdout] test rules::promotion::tests::test_each_tiered_class_has_seven ... ok
[INFO] [stdout] test visualize::tests::test_render_mountain ... ok
[INFO] [stdout] test visualize::tests::test_size_is_1 ... ok
[INFO] [stdout] test visualize::tests::test_visualizer_even_row_no_indent ... ok
[INFO] [stdout] test visualize::tests::test_visualizer_odd_row_indented ... ok
[INFO] [stdout] test world::climate::tests::test_climate_levels ... ok
[INFO] [stdout] test rules::promotion::tests::test_tier_1_have_no_prerequisites ... ok
[INFO] [stdout] test visualize::tests::test_visualizer_tile_count_in_buffer ... ok
[INFO] [stdout] test rules::promotion::tests::test_spy_promotions ... ok
[INFO] [stdout] test world::terrain::tests::test_terrain_builtin_yields ... ok
[INFO] [stdout] test world::terrain::tests::test_terrain_equality ... ok
[INFO] [stdout] test world::tile::tests::test_total_yields_terrain_only ... ok
[INFO] [stdout] test world::tile::tests::test_total_yields_with_improvement ... ok
[INFO] [stdout] test world::tile::tests::test_total_yields_with_resource ... ok
[INFO] [stdout] test world::tile::tests::test_world_tile_implements_hextile ... ok
[INFO] [stdout] test world::tile::tests::test_total_yields_pillaged_improvement_excluded ... ok
[INFO] [stderr]      Running tests/ai_agent.rs (/opt/rustwide/target/debug/deps/ai_agent-a2b43885d7d897df)
[INFO] [stdout] test world::edge::tests::test_world_edge_river_cost ... ok
[INFO] [stdout] test yields::tests::test_yield_bundle_merge_additive ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 144 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test agent_queues_production_on_first_turn ... ok
[INFO] [stdout] test agent_does_not_move_enemy_units ... ok
[INFO] [stdout] test production_diff_contains_correct_city_id ... ok
[INFO] [stderr]      Running tests/ai_simulation.rs (/opt/rustwide/target/debug/deps/ai_simulation-410c6e9d1fc74e62)
[INFO] [stdout] test both_agents_take_first_turn_without_panic ... ok
[INFO] [stdout] test agent_does_not_double_queue_production ... ok
[INFO] [stdout] test agent_moves_warrior_toward_unexplored_territory ... ok
[INFO] [stdout] test agent_is_deterministic_same_seed ... ok
[INFO] [stdout] test warrior_explores_over_multiple_turns ... ok
[INFO] [stdout] test agent_runs_multiple_turns_without_panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test ai_diffs_reference_valid_entities ... ok
[INFO] [stdout] test ai_game_state_consistency ... ok
[INFO] [stdout] test ai_game_deterministic_across_runs ... ok
[INFO] [stdout] test ai_game_20_turns_no_panic ... ok
[INFO] [stdout] test ai_game_units_produced_and_explore ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/alliances.rs (/opt/rustwide/target/debug/deps/alliances-c9363e7aca5c5f6e)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test cannot_ally_while_at_war ... ok
[INFO] [stdout] test form_alliance_sets_status ... ok
[INFO] [stdout] test alliance_levels_up_over_time ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/apply_delta.rs (/opt/rustwide/target/debug/deps/apply_delta-9470d896614a90f5)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test apply_improvement_placed_sets_tile ... ok
[INFO] [stdout] test apply_victory_achieved_sets_game_over ... ok
[INFO] [stdout] test apply_unit_moved_updates_coord_and_movement ... ok
[INFO] [stdout] test apply_turn_advanced_sets_turn ... ok
[INFO] [stdout] test apply_gold_changed_adjusts_treasury ... ok
[INFO] [stdout] test apply_diff_processes_multiple_deltas ... ok
[INFO] [stdout] test apply_unit_destroyed_removes_unit ... ok
[INFO] [stdout] test round_trip_advance_and_apply_matches ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/barbarians.rs (/opt/rustwide/target/debug/deps/barbarians-5334387dd4cb2d39)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test clans_mode_disabled_hire_fails ... ok
[INFO] [stdout] test clans_hire_unit_from_camp ... ok
[INFO] [stdout] test barbarian_disabled_no_camps ... ok
[INFO] [stdout] test clans_hire_cooldown ... ok
[INFO] [stdout] test clans_incite_camp ... ok
[INFO] [stdout] test clans_bribe_camp ... ok
[INFO] [stdout] test clans_incite_self_fails ... ok
[INFO] [stdout] test barbarian_generates_units_after_scout_returns ... ok
[INFO] [stdout] test clans_insufficient_gold_hire ... ok
[INFO] [stdout] test barbarian_scout_discovers_player_and_returns ... ok
[INFO] [stdout] test barbarian_scout_spawns_from_camp ... ok
[INFO] [stdout] test clans_bribe_accelerates_conversion ... ok
[INFO] [stdout] test clans_camp_converts_to_city_state ... ok
[INFO] [stdout] test clear_barbarian_camp_removes_units ... ok
[INFO] [stdout] test barbarian_camp_spawns_on_turn ... ok
[INFO] [stdout] test clans_conversion_respects_city_placement_rules ... ok
[INFO] [stdout] test clans_incite_slows_conversion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/builder.rs (/opt/rustwide/target/debug/deps/builder-914d734e640100cd)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test builder_must_be_at_coord_for_improvement ... ok
[INFO] [stdout] test place_road_rejects_same_tier ... ok
[INFO] [stdout] test place_road_decrements_charges ... ok
[INFO] [stdout] test road_upgrade_succeeds ... ok
[INFO] [stdout] test place_road_ancient_succeeds ... ok
[INFO] [stdout] test place_road_requires_tech ... ok
[INFO] [stdout] test builder_destroyed_when_charges_exhausted ... ok
[INFO] [stdout] test builder_charges_decrement_on_improvement ... ok
[INFO] [stdout] test non_builder_unit_rejected ... ok
[INFO] [stdout] test place_improvement_without_builder_still_works ... ok
[INFO] [stdout] test place_road_rejects_downgrade ... ok
[INFO] [stdout] test place_road_on_water_fails ... ok
[INFO] [stdout] test ancient_road_no_maintenance ... ok
[INFO] [stdout] test builder_must_be_at_coord_for_road ... ok
[INFO] [stdout] test road_maintenance_deducted_per_turn ... ok
[INFO] [stdout] test place_road_tile_not_owned ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/civ_abilities.rs (/opt/rustwide/target/debug/deps/civ_abilities-884ee15d568c0a86)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_acropolis_requires_hills ... ok
[INFO] [stdout] test test_stepwell_is_india_exclusive ... ok
[INFO] [stdout] test test_germany_extra_district_slot ... ok
[INFO] [stdout] test test_samurai_no_damage_penalty ... ok
[INFO] [stdout] test test_unique_unit_data_replaces_base ... ok
[INFO] [stdout] test test_sphinx_is_egypt_exclusive ... ok
[INFO] [stdout] test test_greece_extra_wildcard_slot ... ok
[INFO] [stdout] test test_babylon_eureka_gives_full_tech ... ok
[INFO] [stdout] test test_hoplite_adjacency_bonus ... ok
[INFO] [stdout] test test_varu_debuffs_adjacent_enemies ... ok
[INFO] [stderr]      Running tests/climate.rs (/opt/rustwide/target/debug/deps/climate-9db6fd662f52ce3f)
[INFO] [stdout] test test_rome_city_founded_gets_monument_and_trading_post ... ok
[INFO] [stdout] test test_babylon_science_penalty ... ok
[INFO] [stdout] test test_mamluk_heals_every_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test non_volcanic_disaster_does_not_add_soil ... ok
[INFO] [stdout] test volcanic_eruption_adds_volcanic_soil ... ok
[INFO] [stdout] test coastal_tile_submerged_on_sea_level_rise ... ok
[INFO] [stdout] test higher_lowland_not_submerged_until_higher_level ... ok
[INFO] [stdout] test sea_level_rises_when_co2_crosses_threshold ... ok
[INFO] [stdout] test disaster_can_destroy_improvement ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/combat_modifiers.rs (/opt/rustwide/target/debug/deps/combat_modifiers-75aea40497fc63c7)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test barbarian_kill_no_auto_clear ... ok
[INFO] [stdout] test promotion_eligibility_and_heal ... ok
[INFO] [stderr]      Running tests/combat_terrain.rs (/opt/rustwide/target/debug/deps/combat_terrain-ce9090b95af88828)
[INFO] [stdout] test xp_awarded_on_kill ... ok
[INFO] [stdout] test government_cs_bonus_applied ... ok
[INFO] [stdout] test promotion_cs_bonus_applied ... ok
[INFO] [stdout] test battle_won_historic_moment ... ok
[INFO] [stdout] test xp_scaled_by_era_difference ... ok
[INFO] [stdout] test xp_minimum_one ... ok
[INFO] [stdout] test policy_discipline_cs_bonus ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test marsh_defender_takes_more_damage ... ok
[INFO] [stdout] test forest_defender_takes_less_damage ... ok
[INFO] [stdout] test hills_defender_takes_less_damage ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/congress.rs (/opt/rustwide/target/debug/deps/congress-1848bd6235a148e8)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test winner_gets_diplomatic_vp ... ok
[INFO] [stdout] test congress_schedules_next_session ... ok
[INFO] [stdout] test congress_session_fires_at_interval ... ok
[INFO] [stderr]      Running tests/cultural_victory.rs (/opt/rustwide/target/debug/deps/cultural_victory-36ffdc5b3b057dcf)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test test_create_great_work_slots_into_city ... ok
[INFO] [stdout] test test_create_great_work_wrong_type_rejected ... ok
[INFO] [stdout] test test_create_great_work_no_slot_available ... ok
[INFO] [stdout] test test_cultural_victory_not_fired_when_tied ... ok
[INFO] [stdout] test test_tourism_from_great_works ... ok
[INFO] [stdout] test test_great_work_tourism_types ... ok
[INFO] [stdout] test test_cultural_victory_fires ... ok
[INFO] [stdout] test test_tourism_from_buildings ... ok
[INFO] [stdout] test test_cultural_victory_requires_exceeding_all_civs ... ok
[INFO] [stdout] test test_domestic_culture_accumulates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/diff_consolidation.rs (/opt/rustwide/target/debug/deps/diff_consolidation-2e0bd1ebea3da11a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test population_growth_emits_citizen_assigned ... ok
[INFO] [stdout] test city_revolt_emits_loyalty_changed_after_revolt ... ok
[INFO] [stdout] test process_turn_returns_diff_with_turn_advanced ... ok
[INFO] [stdout] test unique_unit_healing_emits_unit_healed ... ok
[INFO] [stdout] test trader_autonomous_movement_emits_unit_moved ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/diff_serde.rs (/opt/rustwide/target/debug/deps/diff_serde-742eb08a288caa0c)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test empty_diff_round_trip ... ok
[INFO] [stdout] test turn_advanced_round_trip ... ok
[INFO] [stdout] test combat_delta_round_trip ... ok
[INFO] [stdout] test unit_moved_round_trip ... ok
[INFO] [stdout] test move_unit_diff_round_trips ... ok
[INFO] [stdout] test static_str_fields_survive_round_trip ... ok
[INFO] [stdout] test mixed_deltas_round_trip ... ok
[INFO] [stdout] test advance_turn_diff_round_trips ... ok
[INFO] [stdout] test jsonl_log_format ... ok
[INFO] [stdout] test replay_recorder_diffs_serialize ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/diplomatic_victory.rs (/opt/rustwide/target/debug/deps/diplomatic_victory-9ed111b5d02005df)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test war_reduces_favor_gain ... ok
[INFO] [stdout] test diplomatic_favor_accumulates_each_turn ... ok
[INFO] [stdout] test diplomatic_victory_fires_at_threshold ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/districts.rs (/opt/rustwide/target/debug/deps/districts-b5be902e459603d5)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test district_too_far_from_city_fails ... ok
[INFO] [stdout] test campus_on_mountain_fails ... ok
[INFO] [stdout] test harbor_on_coast_succeeds ... ok
[INFO] [stdout] test theater_square_requires_craftsmanship_civic ... ok
[INFO] [stdout] test district_on_city_center_fails ... ok
[INFO] [stdout] test harbor_on_land_fails ... ok
[INFO] [stdout] test district_on_occupied_tile_fails ... ok
[INFO] [stdout] test campus_blocked_without_writing ... ok
[INFO] [stdout] test campus_on_owned_land_succeeds ... ok
[INFO] [stdout] test district_on_unowned_tile_fails ... ok
[INFO] [stdout] test two_different_districts_succeed ... ok
[INFO] [stdout] test duplicate_district_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/domination_victory.rs (/opt/rustwide/target/debug/deps/domination_victory-f3c0a4ef4b177661)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_city_not_captured_if_defenders_remain ... ok
[INFO] [stdout] test test_game_over_projects_to_api_view ... ok
[INFO] [stdout] test test_domination_victory_not_fired_if_capitals_remain ... ok
[INFO] [stdout] test test_domination_progress_tracking ... ok
[INFO] [stdout] test test_city_capture_on_melee_kill ... ok
[INFO] [stdout] test test_immediate_win_takes_priority_over_turn_limit ... ok
[INFO] [stdout] test test_domination_victory_fires_on_all_capitals_captured ... ok
[INFO] [stdout] test test_culture_victory_requires_tourism_exceeding_all ... ok
[INFO] [stdout] test test_culture_victory_blocked_when_opponent_culture_higher ... ok
[INFO] [stdout] test test_score_victory_fires_at_turn_limit ... ok
[INFO] [stderr]      Running tests/era_score.rs (/opt/rustwide/target/debug/deps/era_score-3d6afecde99e1a66)
[INFO] [stdout] test test_domination_three_civs_requires_both_capitals ... ok
[INFO] [stdout] test test_score_victory_not_before_limit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_battle_won_earns_era_score ... ok
[INFO] [stdout] test test_historic_moment_earned_on_city_founded ... ok
[INFO] [stdout] test test_era_advanced_delta_emitted ... ok
[INFO] [stdout] test test_golden_age_from_high_score ... ok
[INFO] [stdout] test test_dark_age_from_low_score ... ok
[INFO] [stdout] test test_historic_moment_earned_on_tech_researched ... ok
[INFO] [stdout] test test_heroic_age_after_dark ... ok
[INFO] [stdout] test test_should_advance_era_threshold ... ok
[INFO] [stdout] test test_era_advancement_resets_score ... ok
[INFO] [stdout] test test_compute_era_age_boundaries ... ok
[INFO] [stdout] test test_unique_moment_not_duplicated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stderr]      Running tests/full_game.rs (/opt/rustwide/target/debug/deps/full_game-ef470073a8b413f1)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test full_game_combat_and_capture ... ok
[INFO] [stdout] test full_game_religion_lifecycle ... ok
[INFO] [stdout] test full_game_great_person_lifecycle ... ok
[INFO] [stdout] test full_game_trade_route_lifecycle ... ok
[INFO] [stdout] test full_game_cultural_border_expansion ... ok
[INFO] [stdout] test full_game_research_and_civic_progression ... ok
[INFO] [stdout] test full_game_city_management_lifecycle ... ok
[INFO] [stdout] test full_game_all_systems_integrated ... ok
[INFO] [stdout] test full_game_50_turns_no_panic ... ok
[INFO] [stderr]      Running tests/game_state_invariants.rs (/opt/rustwide/target/debug/deps/game_state_invariants-b88a6c26ad4305f1)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test board_normalize_round_trip ... ok
[INFO] [stdout] test visibility_covers_city_radius ... ok
[INFO] [stdout] test advance_turn_production_progress ... ok
[INFO] [stdout] test city_owner_matches_civ_cities_list ... ok
[INFO] [stdout] test all_units_on_passable_terrain ... ok
[INFO] [stdout] test advance_turn_does_not_lose_units ... ok
[INFO] [stdout] test explored_tiles_never_shrink ... ok
[INFO] [stderr]      Running tests/gameplay.rs (/opt/rustwide/target/debug/deps/gameplay-48f4820df4d31b14)
[INFO] [stdout] test turn_counter_advances_correctly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test cannot_found_city_near_enemy_capital ... ok
[INFO] [stdout] test city_capture_destroys_garrisoned_units_on_tile ... ok
[INFO] [stdout] test city_bombard_fails_after_walls_breached_by_combat ... ok
[INFO] [stdout] test founder_too_close_to_existing_city_is_rejected ... ok
[INFO] [stdout] test attacking_unit_at_one_hp_destroys_it ... ok
[INFO] [stdout] test civilian_blocked_from_moving_onto_enemy_unit ... ok
[INFO] [stdout] test city_bombard_fails_after_walls_are_destroyed ... ok
[INFO] [stdout] test city_bombard_deals_damage_no_counter ... ok
[INFO] [stdout] test combat_unit_cannot_walk_into_enemy_tile ... ok
[INFO] [stdout] test fog_of_war_expands_after_unit_move ... ok
[INFO] [stdout] test civilian_blocked_from_stacking_with_friendly_unit ... ok
[INFO] [stdout] test city_bombard_requires_walls ... ok
[INFO] [stdout] test city_bombard_range_check ... ok
[INFO] [stdout] test city_capture_transfers_ownership_on_last_defender_killed ... ok
[INFO] [stdout] test initial_visibility_covers_starting_tiles ... ok
[INFO] [stdout] test melee_attack_emits_damage_and_reduces_health ... ok
[INFO] [stdout] test melee_attack_damages_city_walls ... ok
[INFO] [stdout] test advance_turn_increments_counter_and_resets_movement ... ok
[INFO] [stdout] test idle_unit_heals_in_friendly_territory ... ok
[INFO] [stdout] test moved_unit_does_not_heal ... ok
[INFO] [stdout] test idle_healing_caps_at_100 ... ok
[INFO] [stdout] test city_bombard_once_per_turn_resets_after_advance ... ok
[INFO] [stdout] test ranged_attack_beyond_range_is_rejected ... ok
[INFO] [stdout] test ranged_attack_does_not_damage_walls ... ok
[INFO] [stdout] test ranged_attack_succeeds_without_adjacency ... ok
[INFO] [stdout] test ranged_kill_on_city_tile_does_not_capture ... ok
[INFO] [stdout] test settler_founds_city_and_is_consumed ... ok
[INFO] [stdout] test no_capture_while_defenders_remain ... ok
[INFO] [stdout] test ranged_unit_attacks_from_two_tiles_away ... ok
[INFO] [stdout] test scenario_initial_state_is_coherent ... ok
[INFO] [stdout] test second_queued_tech_advances_after_first_completes ... ok
[INFO] [stdout] test siege_bonus_not_applied_in_open_field ... ok
[INFO] [stdout] test multiple_turns_advance_correctly ... ok
[INFO] [stdout] test two_friendly_units_cannot_stack ... ok
[INFO] [stdout] test strategic_resource_accumulated_from_improvement ... ok
[INFO] [stdout] test strategic_resource_not_accumulated_without_improvement ... ok
[INFO] [stdout] test idle_unit_heals_in_neutral_territory ... ok
[INFO] [stdout] test unit_production_blocked_without_resource ... ok
[INFO] [stdout] test unit_production_consumes_strategic_resource ... ok
[INFO] [stdout] test wall_defense_bonus_reduces_damage_to_defender ... ok
[INFO] [stdout] test tech_completes_when_science_fills_progress ... ok
[INFO] [stdout] test siege_unit_bonus_applies_on_city_tile ... ok
[INFO] [stdout] test unit_production_no_resource_cost_completes ... ok
[INFO] [stdout] test wall_destruction_when_hp_reaches_zero ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/governors.rs (/opt/rustwide/target/debug/deps/governors-70719b2acb23189e)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test test_promotion_definitions_exist ... ok
[INFO] [stdout] test test_promotion_lookup ... ok
[INFO] [stdout] test test_promotion_prerequisites_valid ... ok
[INFO] [stdout] test test_promotion_tiers ... ok
[INFO] [stdout] test test_governor_modifiers_only_when_established ... ok
[INFO] [stdout] test test_assign_governor_already_in_city ... ok
[INFO] [stdout] test test_promote_governor_basic ... ok
[INFO] [stdout] test test_assign_governor_to_city ... ok
[INFO] [stdout] test test_promote_governor_insufficient_titles ... ok
[INFO] [stdout] test test_assign_governor_to_wrong_civ_city ... ok
[INFO] [stdout] test test_civic_grants_governor_title ... ok
[INFO] [stdout] test test_pingala_yields_bonus ... ok
[INFO] [stdout] test test_promote_governor_prerequisite_not_met ... ok
[INFO] [stdout] test test_promote_wrong_governor ... ok
[INFO] [stdout] test test_governor_established_delta_emitted ... ok
[INFO] [stdout] test test_promoted_governor_extra_modifiers ... ok
[INFO] [stdout] test test_reassign_governor_resets_timer ... ok
[INFO] [stdout] test test_promote_governor_already_unlocked ... ok
[INFO] [stdout] test test_governor_loyalty_bonus_only_when_established ... ok
[INFO] [stderr]      Running tests/great_persons.rs (/opt/rustwide/target/debug/deps/great_persons-b6a09ddaf874c8a3)
[INFO] [stdout] test test_governor_establishment_timer_countdown ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test test_faith_patronage_non_prophet_fails ... ok
[INFO] [stdout] test test_faith_patronage_insufficient_faith_fails ... ok
[INFO] [stdout] test test_patronage_insufficient_gold_fails ... ok
[INFO] [stdout] test test_patronage_partial_points_reduces_cost ... ok
[INFO] [stdout] test test_retire_already_retired_fails ... ok
[INFO] [stdout] test test_era_gating_filters_candidates ... ok
[INFO] [stdout] test test_competition_consumed_candidate ... ok
[INFO] [stdout] test test_great_person_patronage_with_gold ... ok
[INFO] [stdout] test test_points_carry_over_after_recruitment ... ok
[INFO] [stdout] test test_great_person_auto_recruited_at_threshold ... ok
[INFO] [stdout] test test_medieval_era_great_person_available ... ok
[INFO] [stdout] test test_gp_point_modifier_only_applies_to_active_types ... ok
[INFO] [stdout] test test_district_generates_great_person_points ... ok
[INFO] [stdout] test test_faith_patronage_prophet ... ok
[INFO] [stdout] test test_retire_great_admiral_grants_naval_combat_bonus ... ok
[INFO] [stdout] test test_retire_great_merchant_grants_gold ... ok
[INFO] [stdout] test test_theater_square_generates_three_types ... ok
[INFO] [stdout] test test_retire_great_engineer_adds_production ... ok
[INFO] [stdout] test test_retire_great_general_grants_land_combat_bonus ... ok
[INFO] [stdout] test test_gp_point_modifier_bonus_accumulates ... ok
[INFO] [stdout] test test_great_person_combat_modifier_applies_in_battle ... ok
[INFO] [stdout] test test_multiple_districts_accumulate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/improvements.rs (/opt/rustwide/target/debug/deps/improvements-a6b8e4410d8290cd)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test lumbermill_blocked_by_unreachable_tech ... ok
[INFO] [stdout] test mine_blocked_without_mining ... ok
[INFO] [stdout] test farm_on_grassland_succeeds ... ok
[INFO] [stdout] test lumbermill_without_forest_fails_and_with_forest_also_fails_tech ... ok
[INFO] [stdout] test farm_blocked_without_pottery ... ok
[INFO] [stdout] test farm_on_ocean_fails ... ok
[INFO] [stdout] test farm_succeeds_after_pottery_researched ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/los_cliff.rs (/opt/rustwide/target/debug/deps/los_cliff-ae59f9a1b6fe79f4)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test ocean_adjacent_to_inland_blocks_los ... ok
[INFO] [stdout] test gradual_ocean_coast_inland_transition_does_not_block_los ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/loyalty.rs (/opt/rustwide/target/debug/deps/loyalty-9ae15c704fd1a1d4)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test cities_start_at_full_loyalty ... ok
[INFO] [stdout] test loyalty_delta_is_clamped ... ok
[INFO] [stdout] test city_ownership_transfers_on_revolt ... ok
[INFO] [stdout] test occupied_city_loses_loyalty_faster ... ok
[INFO] [stdout] test territory_transfers_on_revolt ... ok
[INFO] [stdout] test governor_stabilizes_loyalty ... ok
[INFO] [stdout] test sustained_pressure_causes_revolt ... ok
[INFO] [stdout] test loyalty_changed_delta_emitted ... ok
[INFO] [stdout] test city_states_skip_loyalty ... ok
[INFO] [stdout] test city_revolts_at_zero_loyalty ... ok
[INFO] [stdout] test isolated_capital_stays_loyal ... ok
[INFO] [stdout] test capital_resists_loyalty_loss ... ok
[INFO] [stdout] test foreign_pressure_erodes_loyalty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mapgen.rs (/opt/rustwide/target/debug/deps/mapgen-df3ab7ce99f9207c)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test starting_positions_valid ... ok
[INFO] [stdout] test no_mountain_with_hills ... ok
[INFO] [stdout] test land_fraction_within_tolerance ... ok
[INFO] [stdout] test land_tiles_have_real_terrain ... ok
[INFO] [stdout] test deterministic ... ok
[INFO] [stderr]      Running tests/movement_domain.rs (/opt/rustwide/target/debug/deps/movement_domain-a554b77714d01add)
[INFO] [stdout] test different_seeds_differ ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test apply_delta_embark_disembark ... ok
[INFO] [stdout] test sea_unit_cannot_move_onto_land ... ok
[INFO] [stdout] test sea_unit_can_move_on_water ... ok
[INFO] [stdout] test embarking_costs_all_movement ... ok
[INFO] [stdout] test disembarking_costs_all_movement ... ok
[INFO] [stdout] test land_unit_cannot_path_through_water ... ok
[INFO] [stdout] test land_unit_can_embark_coast_with_tech ... ok
[INFO] [stdout] test settler_cannot_move_onto_ocean ... ok
[INFO] [stdout] test land_unit_cannot_move_onto_ocean ... ok
[INFO] [stdout] test embarked_unit_can_move_on_water ... ok
[INFO] [stdout] test land_unit_cannot_move_onto_coast ... ok
[INFO] [stdout] test land_unit_cannot_embark_ocean_with_coast_only ... ok
[INFO] [stdout] test land_unit_can_embark_ocean_with_full_tech ... ok
[INFO] [stdout] test land_unit_can_still_move_on_land ... ok
[INFO] [stdout] test land_unit_cannot_embark_without_tech ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/natural_wonder_discovery.rs (/opt/rustwide/target/debug/deps/natural_wonder_discovery-b6cd65670535eda4)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test rediscovering_natural_wonder_does_not_emit_again ... ok
[INFO] [stdout] test discovering_natural_wonder_emits_delta ... ok
[INFO] [stdout] test wonder_discovery_grants_era_score_via_advance_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/natural_wonders.rs (/opt/rustwide/target/debug/deps/natural_wonders-77eb7f1073b05c26)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test impassable_wonder_has_impassable_movement_cost ... ok
[INFO] [stdout] test wonder_tile_yields_terrain_plus_wonder_bonus ... ok
[INFO] [stdout] test wonder_appeal_bonus_is_correct ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/power.rs (/opt/rustwide/target/debug/deps/power-d043576c2cab6690)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test no_co2_from_nuclear_plant ... ok
[INFO] [stdout] test power_balance_computed ... ok
[INFO] [stdout] test multiple_cities_accumulate_co2 ... ok
[INFO] [stdout] test co2_accumulates_from_coal_plant ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/projects.rs (/opt/rustwide/target/debug/deps/projects-ddbb605508a12349)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test non_repeatable_project_removed_from_defs_after_completion ... ok
[INFO] [stdout] test repeatable_project_stays_in_defs ... ok
[INFO] [stdout] test carbon_recapture_reduces_co2 ... ok
[INFO] [stdout] test science_project_increments_milestones ... ok
[INFO] [stdout] test project_completes_after_production ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/religion.rs (/opt/rustwide/target/debug/deps/religion-7d87dc2e49c09154)
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test dance_of_the_aurora_belief_has_tundra_condition ... ok
[INFO] [stdout] test appeal_decreases_from_adjacent_marsh ... ok
[INFO] [stdout] test appeal_mixed_positive_and_negative ... ok
[INFO] [stdout] test found_pantheon_success ... ok
[INFO] [stdout] test found_pantheon_already_founded ... ok
[INFO] [stdout] test and_condition_fails_when_one_missing ... ok
[INFO] [stdout] test appeal_increases_from_adjacent_mountains ... ok
[INFO] [stdout] test and_condition_both_required ... ok
[INFO] [stdout] test earth_goddess_belief_has_appeal_condition ... ok
[INFO] [stdout] test found_pantheon_belief_already_taken ... ok
[INFO] [stdout] test found_religion_already_founded ... ok
[INFO] [stdout] test city_majority_religion ... ok
[INFO] [stdout] test found_religion_duplicate_name ... ok
[INFO] [stdout] test found_religion_prophet_consumed ... ok
[INFO] [stdout] test found_religion_success ... ok
[INFO] [stdout] test belief_defs_loaded ... ok
[INFO] [stdout] test or_condition_fails_when_neither ... ok
[INFO] [stdout] test per_adjacent_terrain_all_six_neighbors ... ok
[INFO] [stdout] test god_of_craftsmen_requires_improved_strategic ... ok
[INFO] [stdout] test per_adjacent_feature_counts_rainforest ... ok
[INFO] [stdout] test per_adjacent_terrain_counts_neighbors_not_self ... ok
[INFO] [stdout] test or_condition_passes_on_either ... ok
[INFO] [stdout] test producing_military_unit_fails_for_civilian ... ok
[INFO] [stdout] test found_religion_no_holy_site ... ok
[INFO] [stdout] test per_adjacent_terrain_zero_when_no_match ... ok
[INFO] [stdout] test monument_to_the_gods_belief_has_wonder_era_condition ... ok
[INFO] [stderr]      Running tests/religion_spread.rs (/opt/rustwide/target/debug/deps/religion_spread-a90ce51c58b531e7)
[INFO] [stdout] test god_of_the_forge_belief_has_era_condition ... ok
[INFO] [stdout] test found_pantheon_insufficient_faith ... ok
[INFO] [stdout] test god_of_craftsmen_fails_unimproved_strategic ... ok
[INFO] [stdout] test religion_majority_cities ... ok
[INFO] [stdout] test producing_military_unit_of_era_passes ... ok
[INFO] [stdout] test purchase_missionary_with_faith ... ok
[INFO] [stdout] test religion_is_enhanced ... ok
[INFO] [stdout] test purchase_with_insufficient_faith ... ok
[INFO] [stdout] test religion_total_followers ... ok
[INFO] [stdout] test spread_religion_not_on_city ... ok
[INFO] [stdout] test religious_idols_compound_condition ... ok
[INFO] [stdout] test desert_folklore_belief_has_desert_condition ... ok
[INFO] [stdout] test sacred_path_belief_has_rainforest_condition ... ok
[INFO] [stdout] test religious_idols_fails_mine_over_strategic ... ok
[INFO] [stdout] test theological_combat_non_religious_unit ... ok
[INFO] [stdout] test theological_combat_not_adjacent ... ok
[INFO] [stdout] test spread_religion_unit_destroyed_at_zero_charges ... ok
[INFO] [stdout] test spread_religion_decrements_charges ... ok
[INFO] [stdout] test spread_religion_success ... ok
[INFO] [stdout] test tile_has_any_improvement_fails_when_empty ... ok
[INFO] [stdout] test tile_has_feature_passes ... ok
[INFO] [stdout] test tile_has_improvement_fails_wrong_type ... ok
[INFO] [stdout] test tile_has_any_improvement_passes ... ok
[INFO] [stdout] test tile_has_improvement_passes_when_present ... ok
[INFO] [stdout] test tile_has_resource_of_category_fails_wrong_category ... ok
[INFO] [stdout] test tile_has_resource_of_category_passes ... ok
[INFO] [stdout] test theological_combat_success ... ok
[INFO] [stdout] test theological_combat_same_civ ... ok
[INFO] [stdout] test tile_min_appeal_condition_charming ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test holy_city_emits_religious_pressure_delta ... ok
[INFO] [stdout] test passive_spread_adds_followers_to_nearby_city ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/replay.rs (/opt/rustwide/target/debug/deps/replay-942f84b1319dd06a)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test record_and_replay_turns ... ok
[INFO] [stdout] test jump_to_out_of_range_returns_false ... ok
[INFO] [stdout] test step_forward_and_backward ... ok
[INFO] [stdout] test replay_state_matches_original ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rl_env.rs (/opt/rustwide/target/debug/deps/rl_env-02756860010c36ea)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test env_step_move_unit ... ok
[INFO] [stdout] test env_reset_returns_valid_observation ... ok
[INFO] [stdout] test env_queue_production ... ok
[INFO] [stdout] test env_available_actions_always_includes_end_turn ... ok
[INFO] [stdout] test env_step_end_turn_advances ... ok
[INFO] [stdout] test env_deterministic ... ok
[INFO] [stdout] test env_game_completes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rock_band.rs (/opt/rustwide/target/debug/deps/rock_band-c8bd7cc197b30bc4)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test rock_band_fails_on_own_city ... ok
[INFO] [stdout] test rock_band_performs_at_foreign_city ... ok
[INFO] [stdout] test rock_band_destroyed_after_performance ... ok
[INFO] [stdout] test non_rock_band_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/save_load.rs (/opt/rustwide/target/debug/deps/save_load-d365e5f5028361b1)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test round_trip_empty_game ... ok
[INFO] [stdout] test round_trip_with_civs ... ok
[INFO] [stdout] test round_trip_after_turns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/science_victory.rs (/opt/rustwide/target/debug/deps/science_victory-3e5bd74b569ac756)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test fifth_milestone_returns_error ... ok
[INFO] [stdout] test complete_all_milestones_wins_science_victory ... ok
[INFO] [stdout] test partial_milestones_do_not_trigger_victory ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/terrain_features.rs (/opt/rustwide/target/debug/deps/terrain_features-55d7741722a083f3)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test wine_under_forest_yields_are_concealed ... ok
[INFO] [stdout] test wine_with_forest_cleared_appears_in_yields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/territory.rs (/opt/rustwide/target/debug/deps/territory-6ee927a76cb93461)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test force_claim_enemy_tile_succeeds ... ok
[INFO] [stdout] test reassign_tile_same_city_is_idempotent ... ok
[INFO] [stdout] test claim_already_owned_tile_is_idempotent ... ok
[INFO] [stdout] test claim_enemy_tile_returns_error ... ok
[INFO] [stdout] test reassign_tile_cross_civ_fails ... ok
[INFO] [stdout] test reassign_tile_unclaimed_fails ... ok
[INFO] [stdout] test claim_tile_out_of_range_returns_error ... ok
[INFO] [stdout] test force_claim_own_tile_is_idempotent ... ok
[INFO] [stdout] test reassign_tile_within_same_civ_succeeds ... ok
[INFO] [stdout] test reassign_tile_to_out_of_range_city_fails ... ok
[INFO] [stdout] test found_city_emits_tile_claimed_deltas ... ok
[INFO] [stdout] test border_prefers_ring2_over_ring3 ... ok
[INFO] [stdout] test border_expands_when_sufficient_culture ... ok
[INFO] [stdout] test border_stops_at_radius_5 ... ok
[INFO] [stdout] test border_accumulates_base_culture_each_turn ... ok
[INFO] [stdout] test claim_unclaimed_tile_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tourism.rs (/opt/rustwide/target/debug/deps/tourism-5e8f26f171a7fbd9)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test cultural_dominance_achieved_when_tourism_exceeds_culture ... ok
[INFO] [stdout] test domestic_tourists_formula ... ok
[INFO] [stdout] test cultural_dominance_fails_if_tied ... ok
[INFO] [stdout] test culture_victory_not_won_without_dominance ... ok
[INFO] [stdout] test multiple_wonders_sum_tourism ... ok
[INFO] [stdout] test culture_victory_won_with_dominance ... ok
[INFO] [stdout] test cultural_dominance_not_achieved_without_tourism ... ok
[INFO] [stdout] test lifetime_culture_grows_over_multiple_turns ... ok
[INFO] [stdout] test tourism_generated_delta_emitted ... ok
[INFO] [stdout] test lifetime_culture_accumulates_each_turn ... ok
[INFO] [stdout] test compute_tourism_zero_without_wonders ... ok
[INFO] [stdout] test compute_tourism_includes_wonder_tourism ... ok
[INFO] [stdout] test tourism_accumulated_grows_with_wonders ... ok
[INFO] [stdout] test culture_victory_triggers_game_over_in_advance_turn ... ok
[INFO] [stdout] test culture_victory_end_to_end_via_tourism_accumulation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/trade.rs (/opt/rustwide/target/debug/deps/trade-ba900797b418c91a)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test assign_trade_route_fails_if_not_at_origin_city ... ok
[INFO] [stdout] test assign_trade_route_fails_if_not_trader ... ok
[INFO] [stdout] test compute_yields_includes_trade_gold ... ok
[INFO] [stdout] test establish_route_domestic_yields ... ok
[INFO] [stdout] test establish_route_consumes_trader_unit ... ok
[INFO] [stdout] test trader_moves_autonomously_toward_destination ... ok
[INFO] [stdout] test establish_route_international_yields ... ok
[INFO] [stdout] test assign_trade_route_sets_destination ... ok
[INFO] [stdout] test establish_route_fails_if_not_trader ... ok
[INFO] [stdout] test trader_auto_establishes_route_on_arrival ... ok
[INFO] [stdout] test route_expires_after_30_turns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/victory.rs (/opt/rustwide/target/debug/deps/victory-cb255a5e9ac51213)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test all_scores_returns_both_civs_sorted ... ok
[INFO] [stdout] test scores_cover_both_civ_ids ... ok
[INFO] [stdout] test score_victory_condition_name_in_delta ... ok
[INFO] [stdout] test score_increases_with_cities_and_techs ... ok
[INFO] [stdout] test game_over_blocks_further_victory_evaluation ... ok
[INFO] [stdout] test score_victory_fires_at_turn_limit ... ok
[INFO] [stdout] test no_victory_conditions_game_never_ends ... ok
[INFO] [stdout] test score_victory_winner_is_highest_scorer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/libhexgrid-d055217a21cf2a09)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test board::tests::board_module_compiles ... ok
[INFO] [stdout] test coord::tests::test_hex_coord_invariant_enforced ... ok
[INFO] [stdout] test coord::tests::test_hex_distance_adjacent ... ok
[INFO] [stdout] test coord::tests::test_hex_distance_symmetry ... ok
[INFO] [stdout] test coord::tests::test_hex_coord_arithmetic ... ok
[INFO] [stdout] test coord::tests::test_neighbors_count ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/open4x-962b96ea4bc696f2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_integration.rs (/opt/rustwide/target/debug/deps/cli_integration-965f5d7c50c4edfd)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test list_units_returns_json_array ... ok
[INFO] [stdout] test new_game_creates_valid_file ... ok
[INFO] [stdout] test status_scores_returns_json ... ok
[INFO] [stdout] test view_returns_player_view ... ok
[INFO] [stdout] test end_turn_advances_game ... ok
[INFO] [stdout] test multiplayer_both_must_end_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/remote_parity.rs (/opt/rustwide/target/debug/deps/remote_parity-14fef8c879bbcd84)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test remote_action_unsupported_errors_cleanly ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/open4x_client_web-6a251cbf15c33d51)
[INFO] [stdout] test remote_parity_full_loop ... ok
[INFO] [stdout] test remote_parity_baseline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/open4x_protocol-65a45a8b71f2383a)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/wire_schema.rs (/opt/rustwide/target/debug/deps/wire_schema-31613a3853f1b191)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test json_value_comparison_is_field_order_insensitive ... ok
[INFO] [stdout] test snapshot_api_error_body ... ok
[INFO] [stdout] test snapshot_mutation_response_unit ... ok
[INFO] [stdout] test snapshot_player_state ... ok
[INFO] [stdout] test roundtrip_default_world_snapshot ... ok
[INFO] [stdout] test snapshot_world_snapshot ... ok
[INFO] [stdout] test roundtrip_default_player_state ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/open4x_sdk-cb215e5c17a7edbf)
[INFO] [stdout] test snapshot_game_view ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test error::tests::from_response_decodes_structured_body ... ok
[INFO] [stderr]      Running tests/native_roundtrip.rs (/opt/rustwide/target/debug/deps/native_roundtrip-f659f9788bc77f2f)
[INFO] [stdout] test error::tests::transport_uses_zero_status ... ok
[INFO] [stdout] test error::tests::from_response_handles_partial_body ... ok
[INFO] [stdout] test error::tests::from_response_falls_back_for_non_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test unauthenticated_endpoint_returns_structured_error ... ok
[INFO] [stdout] test health_round_trip ... ok
[INFO] [stdout] test government_change_rejects_unknown_with_structured_error ... ok
[INFO] [stdout] test world_snapshot_returns_tiles_and_dimensions ... ok
[INFO] [stdout] test end_turn_blocks_when_required_action_pending ... ok
[INFO] [stdout] test games_new_mints_token_and_player_state_uses_it ... ok
[INFO] [stdout] test cities_list_units_list_and_diplomacy_round_trip ... ok
[INFO] [stdout] test city_mutations_round_trip ... ok
[INFO] [stdout] test tech_cancel_is_idempotent ... ok
[INFO] [stdout] test smoke_remaining_endpoints_all_return_2xx ... ok
[INFO] [stdout] test tech_get_and_research_and_end_turn_advance ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/wasm_smoke.rs (/opt/rustwide/target/debug/deps/wasm_smoke-e82947b022b4edf0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/open4x_server-db2a2e423f7b31b8)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test server::web_projection::tests::cities_projector_includes_owner_and_queue ... ok
[INFO] [stdout] test server::web_projection::tests::player_state_projects_yields_and_strategic_resources ... ok
[INFO] [stdout] test server::web_projection::tests::units_projector_emits_action_set ... ok
[INFO] [stdout] test server::web_projection::tests::world_snapshot_radius_filters_tiles ... ok
[INFO] [stdout] test server::web_projection::tests::world_snapshot_topology_maps_to_wrap_flags ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/open4x_server-bf8ca0d2900b2dc7)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rest_api.rs (/opt/rustwide/target/debug/deps/rest_api-735b6d2394fd2d0f)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test unauthenticated_endpoint_rejects_missing_token ... ok
[INFO] [stdout] test health_is_unauthenticated ... ok
[INFO] [stdout] test turn_queue_lists_required_choose_research_on_fresh_game ... ok
[INFO] [stdout] test world_snapshot_returns_tiles_and_dimensions ... ok
[INFO] [stdout] test games_new_mints_token_and_player_state_uses_it ... ok
[INFO] [stdout] test end_turn_blocks_when_required_action_pending ... ok
[INFO] [stdout] test victory_includes_six_conditions_and_ranks_player ... ok
[INFO] [stdout] test city_focus_round_trip_persists_via_post_focus ... ok
[INFO] [stdout] test turn_queue_includes_civic_and_city_items_via_pending_actions ... ok
[INFO] [stdout] test units_actions_are_engine_derived_and_role_specific ... ok
[INFO] [stdout] test city_rename_round_trip_persists_via_post_rename ... ok
[INFO] [stdout] test victory_score_pct_is_engine_derived_not_zero ... ok
[INFO] [stdout] test government_catalogue_lists_engine_registered_policies_as_locked ... ok
[INFO] [stdout] test cities_units_and_diplomacy_round_trip ... ok
[INFO] [stdout] test change_government_rejects_unknown_and_locked_then_succeeds_when_unlocked ... ok
[INFO] [stdout] test production_queue_and_cancel_round_trip ... ok
[INFO] [stdout] test end_turn_advances_after_research_chosen ... ok
[INFO] [stdout] test cancel_civic_clears_active_and_is_idempotent ... ok
[INFO] [stderr]    Doc-tests libciv
[INFO] [stdout] test cancel_research_drops_active_tech_and_is_idempotent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test libciv/src/lib.rs - (line 25) - compile ... ok
[INFO] [stdout] test libciv/src/lib.rs - (line 35) - compile ... ok
[INFO] [stdout] test libciv/src/rl/mod.rs - rl (line 8) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.52s; merged doctests compilation took 0.50s
[INFO] [stderr]    Doc-tests libhexgrid
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests open4x_client_web
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests open4x_protocol
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests open4x_sdk
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests open4x_server
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cc7519fef0609013e0e7322ffc3ecd1a8c49f07a3444cee486898a4979cf1adf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc7519fef0609013e0e7322ffc3ecd1a8c49f07a3444cee486898a4979cf1adf", kill_on_drop: false }`
[INFO] [stdout] cc7519fef0609013e0e7322ffc3ecd1a8c49f07a3444cee486898a4979cf1adf
