[INFO] cloning repository https://github.com/notarikon-nz/AvianHaven
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/notarikon-nz/AvianHaven" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotarikon-nz%2FAvianHaven", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotarikon-nz%2FAvianHaven'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 21e13982c7d2b55dd8c25f297de05c8285cf5514
[INFO] checking notarikon-nz/AvianHaven/21e13982c7d2b55dd8c25f297de05c8285cf5514 against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotarikon-nz%2FAvianHaven" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/notarikon-nz/AvianHaven
[INFO] finished tweaking git repo https://github.com/notarikon-nz/AvianHaven
[INFO] tweaked toml for git repo https://github.com/notarikon-nz/AvianHaven written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/notarikon-nz/AvianHaven on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/notarikon-nz/AvianHaven 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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e664f413908bcab6822c96631090ef3d76f3fde402b47afd58ef9914bfa6193a
[INFO] running `Command { std: "docker" "start" "-a" "e664f413908bcab6822c96631090ef3d76f3fde402b47afd58ef9914bfa6193a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e664f413908bcab6822c96631090ef3d76f3fde402b47afd58ef9914bfa6193a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e664f413908bcab6822c96631090ef3d76f3fde402b47afd58ef9914bfa6193a", kill_on_drop: false }`
[INFO] [stdout] e664f413908bcab6822c96631090ef3d76f3fde402b47afd58ef9914bfa6193a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a152d235e24c7b35a3b01d2e6611265e08047674f5086d7f379b5ee38c46daf1
[INFO] running `Command { std: "docker" "start" "-a" "a152d235e24c7b35a3b01d2e6611265e08047674f5086d7f379b5ee38c46daf1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling indexmap v2.11.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling uuid v1.18.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking fixedbitset v0.5.7
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking nonmax v0.5.5
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking downcast-rs v2.0.1
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking bevy_ptr v0.16.1
[INFO] [stderr]     Checking disqualified v1.0.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking bumpalo v3.19.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking libloading v0.8.8
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.1
[INFO] [stderr]    Compiling bevy_macro_utils v0.16.1
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking async-fs v2.1.3
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling encase_derive_impl v0.10.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling naga v24.0.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking typewit v1.13.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking const_panic v0.2.14
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking stackfuture v0.3.0
[INFO] [stderr]     Checking atomicow v1.1.0
[INFO] [stderr]     Checking const-fnv1a-hash v1.1.0
[INFO] [stderr]    Compiling ash v0.38.0+1.3.281
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]    Compiling wgpu-hal v24.0.4
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking twox-hash v2.1.1
[INFO] [stderr]     Checking ruzstd v0.8.1
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking ktx2 v0.3.0
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]    Compiling wgpu-core v24.0.5
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking const_soft_float v0.1.4
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]     Checking rectangle-pack v0.4.2
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]    Compiling wgpu v24.0.5
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling bevy_macro_utils v0.14.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking sysinfo v0.34.2
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking offset-allocator v0.2.0
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]     Checking bevy_ptr v0.14.2
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking radsort v0.1.1
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking bevy_tasks v0.14.2
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking roxmltree v0.20.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]     Checking memmap2 v0.9.8
[INFO] [stderr]     Checking unicode-properties v0.1.3
[INFO] [stderr]     Checking yazi v0.2.1
[INFO] [stderr]     Checking zeno v0.3.3
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking unicode-script v0.5.7
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking unicode-ccc v0.2.0
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.2.0
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking sys-locale v0.3.2
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking unicode-linebreak v0.1.5
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking as-raw-xcb-connection v1.0.1
[INFO] [stderr]     Checking self_cell v1.2.0
[INFO] [stderr]     Checking rangemap v1.6.0
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]    Compiling gilrs v0.11.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking cursor-icon v1.2.0
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking grid v0.15.0
[INFO] [stderr]     Checking taffy v0.7.7
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking accesskit v0.14.0
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking robust v1.2.0
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking ordered-float v5.0.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking ena v0.14.3
[INFO] [stderr]    Compiling steamworks-sys v0.11.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking inventory v0.3.21
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking rand_pcg v0.3.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking copyless v0.1.5
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking colored v3.0.0
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling bevy_reflect_derive v0.16.1
[INFO] [stderr]    Compiling variadics_please v1.1.0
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]    Compiling bevy_ecs_macros v0.16.1
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]    Compiling bevy_derive v0.16.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling encase_derive v0.10.0
[INFO] [stderr]    Compiling bevy_asset_macros v0.16.1
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]    Compiling bevy_encase_derive v0.16.1
[INFO] [stderr]    Compiling bevy_render_macros v0.16.1
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.14.2
[INFO] [stderr]    Compiling bevy_reflect_derive v0.14.2
[INFO] [stderr]     Checking font-types v0.9.0
[INFO] [stderr]    Compiling bevy_ecs_macros v0.14.2
[INFO] [stderr]     Checking read-fonts v0.29.3
[INFO] [stderr]     Checking bitflags v2.9.3
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking erased-serde v0.4.6
[INFO] [stderr]     Checking glam v0.29.3
[INFO] [stderr]     Checking bevy_platform v0.16.1
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking petgraph v0.7.1
[INFO] [stderr]     Checking bevy_utils v0.16.1
[INFO] [stderr]     Checking bevy_tasks v0.16.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking ctrlc v3.4.7
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking wgpu-types v24.0.0
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking bevy_utils v0.14.2
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking bevy_reflect v0.16.1
[INFO] [stderr]     Checking encase v0.10.0
[INFO] [stderr]     Checking bevy_mikktspace v0.16.1
[INFO] [stderr]     Checking hexasphere v15.1.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking skrifa v0.31.3
[INFO] [stderr]    Compiling enumn v0.1.14
[INFO] [stderr]    Compiling bevy_derive v0.14.2
[INFO] [stderr]     Checking gethostname v1.0.2
[INFO] [stderr]     Checking polling v3.10.0
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]     Checking swash v0.2.5
[INFO] [stderr]     Checking bevy_ecs v0.16.1
[INFO] [stderr]     Checking bevy_math v0.16.1
[INFO] [stderr]     Checking accesskit v0.18.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking naga_oil v0.17.1
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking bevy_reflect v0.14.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking inotify v0.11.0
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking gilrs-core v0.6.4
[INFO] [stderr]     Checking cosmic-text v0.13.2
[INFO] [stderr]     Checking rodio v0.20.1
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.16.1
[INFO] [stderr]    Compiling bevy_state_macros v0.16.1
[INFO] [stderr]     Checking accesskit_winit v0.25.0
[INFO] [stderr]     Checking bevy_ecs v0.14.2
[INFO] [stderr]     Checking bevy_math v0.14.2
[INFO] [stderr]     Checking bevy_color v0.16.2
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]    Compiling bevy_asset_macros v0.14.2
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]     Checking spade v2.15.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking cosmic-text v0.14.2
[INFO] [stderr]    Compiling typetag-impl v0.2.20
[INFO] [stderr]     Checking bevy_app v0.16.1
[INFO] [stderr]    Compiling bevy_enhanced_input_macros v0.18.0
[INFO] [stderr]     Checking bevy_log v0.16.1
[INFO] [stderr]     Checking bevy_asset v0.16.1
[INFO] [stderr]     Checking bevy_input v0.16.1
[INFO] [stderr]     Checking bevy_transform v0.16.1
[INFO] [stderr]     Checking bevy_time v0.16.1
[INFO] [stderr]     Checking bevy_app v0.14.2
[INFO] [stderr]     Checking bevy_a11y v0.16.1
[INFO] [stderr]     Checking bevy_diagnostic v0.16.1
[INFO] [stderr]     Checking bevy_state v0.16.1
[INFO] [stderr]     Checking bevy_core v0.14.2
[INFO] [stderr]     Checking bevy_hierarchy v0.14.2
[INFO] [stderr]     Checking bevy_time v0.14.2
[INFO] [stderr]     Checking bevy_a11y v0.14.2
[INFO] [stderr]     Checking bevy_diagnostic v0.14.2
[INFO] [stderr]     Checking bevy_window v0.14.2
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking bevy_transform v0.14.2
[INFO] [stderr]     Checking bevy_window v0.16.1
[INFO] [stderr]     Checking bevy_gilrs v0.16.1
[INFO] [stderr]     Checking bevy_image v0.16.1
[INFO] [stderr]     Checking bevy_audio v0.16.1
[INFO] [stderr]     Checking bevy_log v0.14.2
[INFO] [stderr]     Checking bevy_input v0.14.2
[INFO] [stderr]     Checking bevy_asset v0.14.2
[INFO] [stderr]     Checking steamworks v0.11.0
[INFO] [stderr]     Checking bevy_mesh v0.16.1
[INFO] [stderr]     Checking typetag v0.2.20
[INFO] [stderr]     Checking bevy_internal v0.14.2
[INFO] [stderr]     Checking bevy v0.14.2
[INFO] [stderr]     Checking bevy_render v0.16.1
[INFO] [stderr]     Checking bevy_input_focus v0.16.1
[INFO] [stderr]     Checking bevy_scriptum v0.6.0
[INFO] [stderr]     Checking bevy_winit v0.16.1
[INFO] [stderr]     Checking parry2d v0.20.2
[INFO] [stderr]     Checking rapier2d v0.25.1
[INFO] [stderr]     Checking bevy_core_pipeline v0.16.1
[INFO] [stderr]     Checking bevy_picking v0.16.1
[INFO] [stderr]     Checking bevy_animation v0.16.1
[INFO] [stderr]     Checking bevy_scene v0.16.1
[INFO] [stderr]     Checking bevy_sprite v0.16.1
[INFO] [stderr]     Checking bevy_pbr v0.16.1
[INFO] [stderr]     Checking bevy_text v0.16.1
[INFO] [stderr]     Checking bevy_ui v0.16.1
[INFO] [stderr]     Checking bevy_gizmos v0.16.1
[INFO] [stderr]     Checking bevy_gltf v0.16.1
[INFO] [stderr]     Checking bevy_internal v0.16.1
[INFO] [stderr]     Checking bevy_dylib v0.16.1
[INFO] [stderr]     Checking bevy v0.16.1
[INFO] [stderr]     Checking bevy_rich_text3d v0.3.0
[INFO] [stderr]     Checking bevy_light_2d v0.7.0
[INFO] [stderr]     Checking bevy_enhanced_input v0.18.0
[INFO] [stderr]     Checking bevy_rapier2d v0.30.0
[INFO] [stderr]     Checking bevy_hanabi v0.16.0
[INFO] [stderr]     Checking bevy_lunex v0.4.2
[INFO] [stderr]     Checking perch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `bevy::prelude::*`
[INFO] [stdout]  --> src/user_interface/tab_group/resources.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[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: `events::*`
[INFO] [stdout]   --> src/user_interface/tab_group/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use events::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `builder::*`
[INFO] [stdout]   --> src/user_interface/tab_group/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use builder::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/flocking/systems.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bevy::prelude::*`
[INFO] [stdout]  --> src/user_interface/tab_group/resources.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[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: `events::*`
[INFO] [stdout]   --> src/user_interface/tab_group/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use events::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `builder::*`
[INFO] [stdout]   --> src/user_interface/tab_group/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use builder::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/flocking/systems.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/bird.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1101 |         _ => SearchPattern::Random,
[INFO] [stdout]      |         ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/bird.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1089 |         Robin | BrownThrasher | WoodThrush => SearchPattern::Grid,
[INFO] [stdout]      |         ---------------------------------- matches some of the same values
[INFO] [stdout] 1090 |         DownyWoodpecker | HairyWoodpecker => SearchPattern::Grid,
[INFO] [stdout]      |         --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1093 |         BlueJay | CommonCrow | NorthernMockingbird => SearchPattern::Spiral,
[INFO] [stdout]      |         ------------------------------------------ matches some of the same values
[INFO] [stdout] 1094 |         Cardinal | TuftedTitmouse => SearchPattern::Spiral,
[INFO] [stdout]      |         ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1101 |         _ => SearchPattern::Random,
[INFO] [stdout]      |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/feeder.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bird_ai/systems.rs:362:30
[INFO] [stdout]     |
[INFO] [stdout] 362 |     for (mut bird_transform, mut blackboard, mut state) in bird_query.iter_mut() {
[INFO] [stdout]     |                              ----^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/bird.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1101 |         _ => SearchPattern::Random,
[INFO] [stdout]      |         ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/bird.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1089 |         Robin | BrownThrasher | WoodThrush => SearchPattern::Grid,
[INFO] [stdout]      |         ---------------------------------- matches some of the same values
[INFO] [stdout] 1090 |         DownyWoodpecker | HairyWoodpecker => SearchPattern::Grid,
[INFO] [stdout]      |         --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1093 |         BlueJay | CommonCrow | NorthernMockingbird => SearchPattern::Spiral,
[INFO] [stdout]      |         ------------------------------------------ matches some of the same values
[INFO] [stdout] 1094 |         Cardinal | TuftedTitmouse => SearchPattern::Spiral,
[INFO] [stdout]      |         ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1101 |         _ => SearchPattern::Random,
[INFO] [stdout]      |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/feeder.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_entity`
[INFO] [stdout]    --> src/bird_ai/systems.rs:935:25
[INFO] [stdout]     |
[INFO] [stdout] 935 |             if let Some(target_entity) = blackboard.current_target {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_entity`
[INFO] [stdout]    --> src/bird_ai/systems.rs:981:25
[INFO] [stdout]     |
[INFO] [stdout] 981 |             if let Some(target_entity) = blackboard.current_target {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder_entity`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1025:10
[INFO] [stdout]      |
[INFO] [stdout] 1025 |     for (feeder_entity, feeder_transform) in feeder_query.iter() {
[INFO] [stdout]      |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dominant_entity`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1059:26
[INFO] [stdout]      |
[INFO] [stdout] 1059 |             if let Some((dominant_entity, _)) = dominant_bird {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dominant_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeding_duration`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1065:30
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                         let (feeding_duration, feeding_frequency, group_tolerance) = bird.species.feeding_style_traits();
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeding_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeding_frequency`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1065:48
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                         let (feeding_duration, feeding_frequency, group_tolerance) = bird.species.feeding_style_traits();
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeding_frequency`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `internal`
[INFO] [stdout]   --> src/bird_ai/bt.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let internal = &blackboard.internal;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_internal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> src/bird_ai/bt.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let world = &blackboard.world_knowledge;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dusk`
[INFO] [stdout]   --> src/bird_ai/bt.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let is_dusk = current_hour >= 18.0 && current_hour <= 20.0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dusk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dawn`
[INFO] [stdout]   --> src/bird_ai/bt.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let is_dawn = current_hour >= 5.0 && current_hour <= 7.0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dawn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bird_ai/systems.rs:362:30
[INFO] [stdout]     |
[INFO] [stdout] 362 |     for (mut bird_transform, mut blackboard, mut state) in bird_query.iter_mut() {
[INFO] [stdout]     |                              ----^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_entity`
[INFO] [stdout]    --> src/bird_ai/systems.rs:935:25
[INFO] [stdout]     |
[INFO] [stdout] 935 |             if let Some(target_entity) = blackboard.current_target {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_entity`
[INFO] [stdout]    --> src/bird_ai/systems.rs:981:25
[INFO] [stdout]     |
[INFO] [stdout] 981 |             if let Some(target_entity) = blackboard.current_target {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder_entity`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1025:10
[INFO] [stdout]      |
[INFO] [stdout] 1025 |     for (feeder_entity, feeder_transform) in feeder_query.iter() {
[INFO] [stdout]      |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dominant_entity`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1059:26
[INFO] [stdout]      |
[INFO] [stdout] 1059 |             if let Some((dominant_entity, _)) = dominant_bird {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dominant_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeding_duration`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1065:30
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                         let (feeding_duration, feeding_frequency, group_tolerance) = bird.species.feeding_style_traits();
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeding_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeding_frequency`
[INFO] [stdout]     --> src/bird_ai/systems.rs:1065:48
[INFO] [stdout]      |
[INFO] [stdout] 1065 |                         let (feeding_duration, feeding_frequency, group_tolerance) = bird.species.feeding_style_traits();
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeding_frequency`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `internal`
[INFO] [stdout]   --> src/bird_ai/bt.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let internal = &blackboard.internal;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_internal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> src/bird_ai/bt.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let world = &blackboard.world_knowledge;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dusk`
[INFO] [stdout]   --> src/bird_ai/bt.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let is_dusk = current_hour >= 18.0 && current_hour <= 20.0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dusk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_dawn`
[INFO] [stdout]   --> src/bird_ai/bt.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let is_dawn = current_hour >= 5.0 && current_hour <= 7.0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_dawn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/photo_mode/advanced_systems.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let Ok((mut camera_transform, mut projection, mut controls)) = camera_query.single_mut() else {
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_transform`
[INFO] [stdout]   --> src/photo_mode/advanced_systems.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let Ok((mut camera_transform, mut projection, mut controls)) = camera_query.single_mut() else {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     mut text_query: Query<&mut Text>,
[INFO] [stdout]     |     ----^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_query`
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     mut text_query: Query<&mut Text>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controls`
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |     if let Ok(controls) = camera_query.single() {
[INFO] [stdout]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/photo_mode/advanced_systems.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let Ok((mut camera_transform, mut projection, mut controls)) = camera_query.single_mut() else {
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_transform`
[INFO] [stdout]   --> src/photo_mode/advanced_systems.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let Ok((mut camera_transform, mut projection, mut controls)) = camera_query.single_mut() else {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     mut text_query: Query<&mut Text>,
[INFO] [stdout]     |     ----^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_query`
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     mut text_query: Query<&mut Text>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controls`
[INFO] [stdout]    --> src/photo_mode/advanced_systems.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |     if let Ok(controls) = camera_query.single() {
[INFO] [stdout]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_transform`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:46:46
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for (handle_entity, interaction, parent, handle_transform) in &mut q_handles {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_node`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |             if let Ok(track_node) = q_nodes.get(track_entity) {
[INFO] [stdout]    |                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     if let Ok((mut slider, options)) = q_sliders.get_mut(slider_entity) {
[INFO] [stdout]    |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:163:34
[INFO] [stdout]     |
[INFO] [stdout] 163 |         for (entity, mut slider, options) in &mut q_sliders {
[INFO] [stdout]     |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     mut evw_final_change: EventWriter<SliderValueChangedEvent>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evw_final_change`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     mut evw_final_change: EventWriter<SliderValueChangedEvent>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evw_final_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pending_change`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:310:18
[INFO] [stdout]     |
[INFO] [stdout] 310 |     for (entity, pending_change, interaction) in &mut q_sliders {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pending_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_transform`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:46:46
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for (handle_entity, interaction, parent, handle_transform) in &mut q_handles {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_node`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |             if let Ok(track_node) = q_nodes.get(track_entity) {
[INFO] [stdout]    |                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/user_interface/slider/systems.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     if let Ok((mut slider, options)) = q_sliders.get_mut(slider_entity) {
[INFO] [stdout]    |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:163:34
[INFO] [stdout]     |
[INFO] [stdout] 163 |         for (entity, mut slider, options) in &mut q_sliders {
[INFO] [stdout]     |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     mut evw_final_change: EventWriter<SliderValueChangedEvent>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evw_final_change`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     mut evw_final_change: EventWriter<SliderValueChangedEvent>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evw_final_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pending_change`
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:310:18
[INFO] [stdout]     |
[INFO] [stdout] 310 |     for (entity, pending_change, interaction) in &mut q_sliders {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pending_change`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animation`
[INFO] [stdout]    --> src/user_interface/dropdown/systems.rs:239:32
[INFO] [stdout]     |
[INFO] [stdout] 239 |     for (entity, mut dropdown, animation) in &mut q_dropdowns {
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animation`
[INFO] [stdout]    --> src/user_interface/dropdown/systems.rs:239:32
[INFO] [stdout]     |
[INFO] [stdout] 239 |     for (entity, mut dropdown, animation) in &mut q_dropdowns {
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interaction_query`
[INFO] [stdout]   --> src/user_interface/scrollable_systems.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interaction_query: Query<&Interaction, With<ScrollableContainer>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interaction_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/user_interface/scrollable_systems.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for (mut thumb, _interaction, _transform) in thumb_query.iter_mut() {
[INFO] [stdout]    |              ----^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interaction_query`
[INFO] [stdout]   --> src/user_interface/scrollable_systems.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     interaction_query: Query<&Interaction, With<ScrollableContainer>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interaction_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/user_interface/scrollable_systems.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for (mut thumb, _interaction, _transform) in thumb_query.iter_mut() {
[INFO] [stdout]    |              ----^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_meta`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:113:35
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for (group_entity, tab_group, tab_meta) in q_tab_groups.iter() {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_content`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:161:31
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     if let Ok(tab_content) = q_tab_content.get(*content_entity) {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut q_focused_tabs: Query<Entity, With<TabFocused>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 |     mut q_tab_buttons_with_focus: Query<(Entity, &TabButton), With<TabFocused>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q_focused_tabs`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut q_focused_tabs: Query<Entity, With<TabFocused>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_q_focused_tabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_group`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:186:24
[INFO] [stdout]     |
[INFO] [stdout] 186 |             if let Ok((tab_group, tab_meta)) = q_tab_groups.get(focused_tab_button.group_entity) {
[INFO] [stdout]     |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_active`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:225:22
[INFO] [stdout]     |
[INFO] [stdout] 225 |     for (tab_button, is_active, is_hovered, is_pressed, is_focused, mut bg_color, mut transform) in &mut q_tab_buttons {
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio_settings`
[INFO] [stdout]   --> src/audio/systems.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     audio_settings: Res<AudioSettings>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_audio_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/audio/systems.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     asset_server: Res<AssetServer>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio_settings`
[INFO] [stdout]    --> src/audio/systems.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     audio_settings: Res<AudioSettings>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_audio_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/audio/systems.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gain`
[INFO] [stdout]    --> src/audio/systems.rs:125:30
[INFO] [stdout]     |
[INFO] [stdout] 125 |                         let (gain, _panning) = calculate_positional_audio(
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_gain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gain`
[INFO] [stdout]    --> src/audio/systems.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout] 138 |                     let (gain, _panning) = calculate_positional_audio(*position, audio_manager.listener_position, 300.0);
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_gain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/audio/systems.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 198 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_meta`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:113:35
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for (group_entity, tab_group, tab_meta) in q_tab_groups.iter() {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_content`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:161:31
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     if let Ok(tab_content) = q_tab_content.get(*content_entity) {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder`
[INFO] [stdout]    --> src/audio/systems.rs:473:28
[INFO] [stdout]     |
[INFO] [stdout] 473 |     for (feeder_transform, feeder) in &feeder_query {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut q_focused_tabs: Query<Entity, With<TabFocused>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 |     mut q_tab_buttons_with_focus: Query<(Entity, &TabButton), With<TabFocused>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q_focused_tabs`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     mut q_focused_tabs: Query<Entity, With<TabFocused>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_q_focused_tabs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tab_group`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:186:24
[INFO] [stdout]     |
[INFO] [stdout] 186 |             if let Ok((tab_group, tab_meta)) = q_tab_groups.get(focused_tab_button.group_entity) {
[INFO] [stdout]     |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tab_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_active`
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:225:22
[INFO] [stdout]     |
[INFO] [stdout] 225 |     for (tab_button, is_active, is_hovered, is_pressed, is_focused, mut bg_color, mut transform) in &mut q_tab_buttons {
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seasonal_state`
[INFO] [stdout]    --> src/environment/systems.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 169 |     seasonal_state: Res<SeasonalState>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seasonal_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/environment/lighting.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     time: Res<Time>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/environment/lighting.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio_settings`
[INFO] [stdout]   --> src/audio/systems.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     audio_settings: Res<AudioSettings>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_audio_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/audio/systems.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     asset_server: Res<AssetServer>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio_settings`
[INFO] [stdout]    --> src/audio/systems.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     audio_settings: Res<AudioSettings>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_audio_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/audio/systems.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gain`
[INFO] [stdout]    --> src/audio/systems.rs:125:30
[INFO] [stdout]     |
[INFO] [stdout] 125 |                         let (gain, _panning) = calculate_positional_audio(
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_gain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gain`
[INFO] [stdout]    --> src/audio/systems.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout] 138 |                     let (gain, _panning) = calculate_positional_audio(*position, audio_manager.listener_position, 300.0);
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_gain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/audio/systems.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 198 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/steam/systems.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |     for event in photo_events.read() {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder`
[INFO] [stdout]    --> src/audio/systems.rs:473:28
[INFO] [stdout]     |
[INFO] [stdout] 473 |     for (feeder_transform, feeder) in &feeder_query {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bird_count`
[INFO] [stdout]   --> src/performance/systems.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bird_count: ResMut<crate::resources::BirdCount>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bird_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seasonal_state`
[INFO] [stdout]    --> src/environment/systems.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 169 |     seasonal_state: Res<SeasonalState>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seasonal_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/environment/lighting.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     time: Res<Time>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/environment/lighting.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flock_query`
[INFO] [stdout]   --> src/flocking/systems.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     flock_query: Query<&Flock>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flock_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/flocking/systems.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     mut bird_query: Query<(Entity, &Transform, &Bird, &BirdState), With<BirdAI>>,
[INFO] [stdout]     |     ----^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/flocking/systems.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/flocking/systems.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder_entity`
[INFO] [stdout]    --> src/flocking/systems.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (feeder_entity, feeder_transform) in &feeder_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/flocking/systems.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |             for (entity, transform, bird, state) in &bird_query {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weather_state`
[INFO] [stdout]   --> src/weather_effects/systems.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     weather_state: &WeatherState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weather_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/steam/systems.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |     for event in photo_events.read() {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bird_count`
[INFO] [stdout]   --> src/performance/systems.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     bird_count: ResMut<crate::resources::BirdCount>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bird_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/bird_data.rs:34:39
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn load_from_files(&mut self, asset_server: &AssetServer) {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flock_query`
[INFO] [stdout]   --> src/flocking/systems.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     flock_query: Query<&Flock>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flock_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protected_birds`
[INFO] [stdout]    --> src/legacy_smart_objects.rs:768:17
[INFO] [stdout]     |
[INFO] [stdout] 768 |             let protected_birds = bird_query.iter()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protected_birds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/flocking/systems.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     mut bird_query: Query<(Entity, &Transform, &Bird, &BirdState), With<BirdAI>>,
[INFO] [stdout]     |     ----^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/flocking/systems.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/flocking/systems.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `feeder_entity`
[INFO] [stdout]    --> src/flocking/systems.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (feeder_entity, feeder_transform) in &feeder_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_feeder_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/flocking/systems.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |             for (entity, transform, bird, state) in &bird_query {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weather_state`
[INFO] [stdout]   --> src/weather_effects/systems.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     weather_state: &WeatherState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weather_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/bird_data.rs:34:39
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn load_from_files(&mut self, asset_server: &AssetServer) {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protected_birds`
[INFO] [stdout]    --> src/legacy_smart_objects.rs:768:17
[INFO] [stdout]     |
[INFO] [stdout] 768 |             let protected_birds = bird_query.iter()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protected_birds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/smart_objects/systems.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]    |     ----^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]   --> src/smart_objects/systems.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/smart_objects/systems.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 let entity = spawn_solar_light(&mut commands, event.position);
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/smart_objects/systems.rs:68:21
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 let entity = spawn_garden_lamp(&mut commands, event.position);
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/systems.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/systems.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]    --> src/smart_objects/systems.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_handle`
[INFO] [stdout]    --> src/smart_objects/systems.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let texture_handle: Handle<Image> = asset_server.load(format!("sprites/objects/{}.png", definition.visual.sprite_filename));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sprite`
[INFO] [stdout]    --> src/smart_objects/systems.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |     let sprite = Sprite {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/workshop.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 302 |     mut browser_state: ResMut<WorkshopBrowserState>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workshop_client`
[INFO] [stdout]    --> src/smart_objects/workshop.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 303 |     workshop_client: Res<SteamWorkshopClient>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workshop_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aesthetic`
[INFO] [stdout]    --> src/aesthetic_objects.rs:560:50
[INFO] [stdout]     |
[INFO] [stdout] 560 |     for (mut visibility, mut sprite, decoration, aesthetic) in &mut seasonal_query {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aesthetic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]    --> src/aesthetic_objects.rs:664:13
[INFO] [stdout]     |
[INFO] [stdout] 664 |         let opacity = 0.1 + 0.2 * (shadow.opacity_cycle.sin() * 0.5 + 0.5);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:14
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:17
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:20
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/smart_objects/systems.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]    |     ----^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]   --> src/smart_objects/systems.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/catalog/systems.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 |     mut interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/catalog/systems.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 279 |     mut interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/smart_objects/systems.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 let entity = spawn_solar_light(&mut commands, event.position);
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/smart_objects/systems.rs:68:21
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 let entity = spawn_garden_lamp(&mut commands, event.position);
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/systems.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/systems.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]    --> src/smart_objects/systems.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     mut registry: ResMut<SmartObjectRegistry>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_handle`
[INFO] [stdout]    --> src/smart_objects/systems.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let texture_handle: Handle<Image> = asset_server.load(format!("sprites/objects/{}.png", definition.visual.sprite_filename));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sprite`
[INFO] [stdout]    --> src/smart_objects/systems.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |     let sprite = Sprite {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/catalog/systems.rs:630:5
[INFO] [stdout]     |
[INFO] [stdout] 630 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]    --> src/catalog/systems.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_transform`
[INFO] [stdout]    --> src/catalog/systems.rs:634:21
[INFO] [stdout]     |
[INFO] [stdout] 634 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/smart_objects/workshop.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 302 |     mut browser_state: ResMut<WorkshopBrowserState>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workshop_client`
[INFO] [stdout]    --> src/smart_objects/workshop.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 303 |     workshop_client: Res<SteamWorkshopClient>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workshop_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aesthetic`
[INFO] [stdout]    --> src/aesthetic_objects.rs:560:50
[INFO] [stdout]     |
[INFO] [stdout] 560 |     for (mut visibility, mut sprite, decoration, aesthetic) in &mut seasonal_query {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aesthetic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opacity`
[INFO] [stdout]    --> src/aesthetic_objects.rs:664:13
[INFO] [stdout]     |
[INFO] [stdout] 664 |         let opacity = 0.1 + 0.2 * (shadow.opacity_cycle.sin() * 0.5 + 0.5);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:14
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:17
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/aesthetic_objects.rs:667:20
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let [r, g, b, _] = base_color.to_srgba().to_f32_array();
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/catalog/systems.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 |     mut interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/catalog/systems.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 279 |     mut interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/catalog/systems.rs:630:5
[INFO] [stdout]     |
[INFO] [stdout] 630 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]    --> src/catalog/systems.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_transform`
[INFO] [stdout]    --> src/catalog/systems.rs:634:21
[INFO] [stdout]     |
[INFO] [stdout] 634 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `placed_objects`
[INFO] [stdout]    --> src/save_load/systems.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     placed_objects: &PlacedObjects,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placed_objects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `placed_objects`
[INFO] [stdout]    --> src/save_load/systems.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     placed_objects: &PlacedObjects,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_placed_objects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/menu/systems.rs:25:48
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn setup_main_menu(mut commands: Commands, asset_server: Res<AssetServer>) {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution_container`
[INFO] [stdout]    --> src/menu/systems.rs:237:21
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 let resolution_container = section.spawn((
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution_container`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]   --> src/menu/systems.rs:25:48
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn setup_main_menu(mut commands: Commands, asset_server: Res<AssetServer>) {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution_container`
[INFO] [stdout]    --> src/menu/systems.rs:237:21
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 let resolution_container = section.spawn((
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution_container`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1142:5
[INFO] [stdout]      |
[INFO] [stdout] 1142 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1190:5
[INFO] [stdout]      |
[INFO] [stdout] 1190 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `menu_state`
[INFO] [stdout]     --> src/menu/systems.rs:1422:5
[INFO] [stdout]      |
[INFO] [stdout] 1422 |     menu_state: Res<MenuState>,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1692:5
[INFO] [stdout]      |
[INFO] [stdout] 1692 |     mut interaction_query: Query<(&Interaction, &Children), (Changed<Interaction>, With<GraphicsQualityDropdown>)>,
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]     --> src/menu/systems.rs:1729:10
[INFO] [stdout]      |
[INFO] [stdout] 1729 |     for (entity, interaction, mut toggle, children) in interaction_query.iter_mut() {
[INFO] [stdout]      |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1142:5
[INFO] [stdout]      |
[INFO] [stdout] 1142 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1190:5
[INFO] [stdout]      |
[INFO] [stdout] 1190 |     mut interaction_query: Query<
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `menu_state`
[INFO] [stdout]     --> src/menu/systems.rs:1422:5
[INFO] [stdout]      |
[INFO] [stdout] 1422 |     menu_state: Res<MenuState>,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/menu/systems.rs:1692:5
[INFO] [stdout]      |
[INFO] [stdout] 1692 |     mut interaction_query: Query<(&Interaction, &Children), (Changed<Interaction>, With<GraphicsQualityDropdown>)>,
[INFO] [stdout]      |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui_widgets.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     mut track_query: Query<(Entity, &Interaction, &GlobalTransform, &Node), (With<SliderTrack>, Without<SliderHandle>)>,
[INFO] [stdout]    |     ----^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_node`
[INFO] [stdout]   --> src/ui_widgets.rs:95:62
[INFO] [stdout]    |
[INFO] [stdout] 95 |             for (track_entity, interaction, track_transform, track_node) in &track_query {
[INFO] [stdout]    |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]     --> src/menu/systems.rs:1729:10
[INFO] [stdout]      |
[INFO] [stdout] 1729 |     for (entity, interaction, mut toggle, children) in interaction_query.iter_mut() {
[INFO] [stdout]      |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui_widgets.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 |     mut interaction_query: Query<(Entity, &Interaction, &DropdownButtonRef), (Changed<Interaction>, With<DropdownButton>)>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:301:10
[INFO] [stdout]     |
[INFO] [stdout] 301 |     for (button_entity, interaction, dropdown_ref) in &interaction_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui_widgets.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut interaction_query: Query<(Entity, &Interaction, &DropdownOption), (Changed<Interaction>, With<Button>)>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:317:10
[INFO] [stdout]     |
[INFO] [stdout] 317 |     for (option_entity, interaction, dropdown_option) in &interaction_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dropdown_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:374:10
[INFO] [stdout]     |
[INFO] [stdout] 374 |     for (dropdown_entity, dropdown, children) in &dropdown_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dropdown_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hoverable_query`
[INFO] [stdout]    --> src/tooltip.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     hoverable_query: Query<&GlobalTransform, With<Hoverable>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hoverable_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hovered_entity`
[INFO] [stdout]    --> src/tooltip.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     if let Some(hovered_entity) = tooltip_state.current_tooltip {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hovered_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lunex_ui.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     mut interaction_query: Query<(&LunexSettingsButton, &UiHover), Changed<UiHover>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hover`
[INFO] [stdout]    --> src/lunex_ui.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |     for (settings_button, hover) in interaction_query.iter() {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_hover`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]     --> src/lunex_ui.rs:1090:47
[INFO] [stdout]      |
[INFO] [stdout] 1090 | ...                   for (name, price, description) in chunk {
[INFO] [stdout]      |                                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]     --> src/lunex_ui.rs:1029:26
[INFO] [stdout]      |
[INFO] [stdout] 1029 |                     for (category, label) in categories {
[INFO] [stdout]      |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui_widgets.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     mut track_query: Query<(Entity, &Interaction, &GlobalTransform, &Node), (With<SliderTrack>, Without<SliderHandle>)>,
[INFO] [stdout]    |     ----^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_node`
[INFO] [stdout]   --> src/ui_widgets.rs:95:62
[INFO] [stdout]    |
[INFO] [stdout] 95 |             for (track_entity, interaction, track_transform, track_node) in &track_query {
[INFO] [stdout]    |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_query`
[INFO] [stdout]     --> src/lunex_ui.rs:1554:5
[INFO] [stdout]      |
[INFO] [stdout] 1554 |     camera_query: Query<(&Camera, &GlobalTransform)>,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]     --> src/lunex_ui.rs:1586:27
[INFO] [stdout]      |
[INFO] [stdout] 1586 |         for (menu_button, layout) in menu_button_query.iter() {
[INFO] [stdout]      |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui_widgets.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 |     mut interaction_query: Query<(Entity, &Interaction, &DropdownButtonRef), (Changed<Interaction>, With<DropdownButton>)>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:301:10
[INFO] [stdout]     |
[INFO] [stdout] 301 |     for (button_entity, interaction, dropdown_ref) in &interaction_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui_widgets.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut interaction_query: Query<(Entity, &Interaction, &DropdownOption), (Changed<Interaction>, With<Button>)>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `option_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:317:10
[INFO] [stdout]     |
[INFO] [stdout] 317 |     for (option_entity, interaction, dropdown_option) in &interaction_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_option_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dropdown_entity`
[INFO] [stdout]    --> src/ui_widgets.rs:374:10
[INFO] [stdout]     |
[INFO] [stdout] 374 |     for (dropdown_entity, dropdown, children) in &dropdown_query {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dropdown_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hoverable_query`
[INFO] [stdout]    --> src/tooltip.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     hoverable_query: Query<&GlobalTransform, With<Hoverable>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hoverable_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hovered_entity`
[INFO] [stdout]    --> src/tooltip.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     if let Some(hovered_entity) = tooltip_state.current_tooltip {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hovered_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `season`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:491:5
[INFO] [stdout]     |
[INFO] [stdout] 491 |     season: Res<crate::environment::resources::SeasonalState>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_season`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nocturnal`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:508:18
[INFO] [stdout]     |
[INFO] [stdout] 508 |     for (entity, nocturnal, mut transform, bird) in bird_query.iter_mut() {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nocturnal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lunex_ui.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     mut interaction_query: Query<(&LunexSettingsButton, &UiHover), Changed<UiHover>>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hover`
[INFO] [stdout]    --> src/lunex_ui.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |     for (settings_button, hover) in interaction_query.iter() {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_hover`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 418 |     mut insect_manager: ResMut<InsectManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/foraging_ecology.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 420 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]    --> src/foraging_ecology.rs:424:30
[INFO] [stdout]     |
[INFO] [stdout] 424 |     for (entity, mut colony, transform) in insect_query.iter_mut() {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:647:20
[INFO] [stdout]     |
[INFO] [stdout] 647 |         if let Ok((mut leader_transform, mut leader_state, mut leader_blackboard)) = bird_query.get_mut(flock.leader) {
[INFO] [stdout]     |                    ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leader_transform`
[INFO] [stdout]    --> src/foraging_ecology.rs:647:20
[INFO] [stdout]     |
[INFO] [stdout] 647 |         if let Ok((mut leader_transform, mut leader_state, mut leader_blackboard)) = bird_query.get_mut(flock.leader) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leader_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `follower_component`
[INFO] [stdout]    --> src/foraging_ecology.rs:686:27
[INFO] [stdout]     |
[INFO] [stdout] 686 |                 if let Ok(follower_component) = follower_query.get(follower) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_follower_component`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member`
[INFO] [stdout]    --> src/foraging_ecology.rs:696:18
[INFO] [stdout]     |
[INFO] [stdout] 696 |             for &member in flock.core_members.iter().chain(flock.followers.iter()) {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_member`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     mut fruit_query: Query<&mut FruitTree>,
[INFO] [stdout]     |     ----^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fruit_query`
[INFO] [stdout]    --> src/foraging_ecology.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     mut fruit_query: Query<&mut FruitTree>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fruit_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]     --> src/lunex_ui.rs:1090:47
[INFO] [stdout]      |
[INFO] [stdout] 1090 | ...                   for (name, price, description) in chunk {
[INFO] [stdout]      |                                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]     --> src/lunex_ui.rs:1029:26
[INFO] [stdout]      |
[INFO] [stdout] 1029 |                     for (category, label) in categories {
[INFO] [stdout]      |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_query`
[INFO] [stdout]     --> src/lunex_ui.rs:1554:5
[INFO] [stdout]      |
[INFO] [stdout] 1554 |     camera_query: Query<(&Camera, &GlobalTransform)>,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]     --> src/lunex_ui.rs:1586:27
[INFO] [stdout]      |
[INFO] [stdout] 1586 |         for (menu_button, layout) in menu_button_query.iter() {
[INFO] [stdout]      |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:300:5
[INFO] [stdout]     |
[INFO] [stdout] 300 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `season`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:491:5
[INFO] [stdout]     |
[INFO] [stdout] 491 |     season: Res<crate::environment::resources::SeasonalState>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_season`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nocturnal`
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:508:18
[INFO] [stdout]     |
[INFO] [stdout] 508 |     for (entity, nocturnal, mut transform, bird) in bird_query.iter_mut() {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nocturnal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/social_features/systems.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     mut close_interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leaderboard_type`
[INFO] [stdout]    --> src/social_features/systems.rs:489:51
[INFO] [stdout]     |
[INFO] [stdout] 489 |         .find(|lb| matches!(&lb.leaderboard_type, leaderboard_type)) {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leaderboard_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:835:49
[INFO] [stdout]     |
[INFO] [stdout] 835 | fn generate_species_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:875:50
[INFO] [stdout]     |
[INFO] [stdout] 875 | fn generate_behavior_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:925:53
[INFO] [stdout]     |
[INFO] [stdout] 925 | fn generate_progression_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:958:53
[INFO] [stdout]     |
[INFO] [stdout] 958 | fn generate_exploration_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elapsed_seconds`
[INFO] [stdout]     --> src/social_features/systems.rs:1006:60
[INFO] [stdout]      |
[INFO] [stdout] 1006 | fn update_challenge_progress(challenges: &mut [Challenge], elapsed_seconds: f64) {
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed_seconds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 418 |     mut insect_manager: ResMut<InsectManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/foraging_ecology.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 420 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]    --> src/foraging_ecology.rs:424:30
[INFO] [stdout]     |
[INFO] [stdout] 424 |     for (entity, mut colony, transform) in insect_query.iter_mut() {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:647:20
[INFO] [stdout]     |
[INFO] [stdout] 647 |         if let Ok((mut leader_transform, mut leader_state, mut leader_blackboard)) = bird_query.get_mut(flock.leader) {
[INFO] [stdout]     |                    ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leader_transform`
[INFO] [stdout]    --> src/foraging_ecology.rs:647:20
[INFO] [stdout]     |
[INFO] [stdout] 647 |         if let Ok((mut leader_transform, mut leader_state, mut leader_blackboard)) = bird_query.get_mut(flock.leader) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leader_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `follower_component`
[INFO] [stdout]    --> src/foraging_ecology.rs:686:27
[INFO] [stdout]     |
[INFO] [stdout] 686 |                 if let Ok(follower_component) = follower_query.get(follower) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_follower_component`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member`
[INFO] [stdout]    --> src/foraging_ecology.rs:696:18
[INFO] [stdout]     |
[INFO] [stdout] 696 |             for &member in flock.core_members.iter().chain(flock.followers.iter()) {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_member`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sanctuary_management.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut predator_events: EventWriter<PredatorSpottedEvent>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predator_events`
[INFO] [stdout]    --> src/sanctuary_management.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut predator_events: EventWriter<PredatorSpottedEvent>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predator_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/sanctuary_management.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/foraging_ecology.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     mut fruit_query: Query<&mut FruitTree>,
[INFO] [stdout]     |     ----^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fruit_query`
[INFO] [stdout]    --> src/foraging_ecology.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 950 |     mut fruit_query: Query<&mut FruitTree>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fruit_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hanabi_effects.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     mut query: Query<Entity, With<ParticleEffect>>,
[INFO] [stdout]     |     ----^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/predator_prey.rs:172:41
[INFO] [stdout]     |
[INFO] [stdout] 172 |     for (predator_entity, mut predator, mut predator_transform, predator_bird) in predator_query.iter_mut() {
[INFO] [stdout]     |                                         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predator_entity`
[INFO] [stdout]    --> src/predator_prey.rs:318:10
[INFO] [stdout]     |
[INFO] [stdout] 318 |     for (predator_entity, predator_transform, _predator_bird) in predator_query.iter() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predator_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]   --> src/bird_selection.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/automated_testing.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/automated_testing.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/automated_testing.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/debug_console.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/debug_console.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `species`
[INFO] [stdout]    --> src/debug_console.rs:440:33
[INFO] [stdout]     |
[INFO] [stdout] 440 |                     if let Some(species) = species {
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_species`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     .and_then(|mut entity_commands| {
[INFO] [stdout]     |                                ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 196 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:264:27
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 if let Ok(mut point_light) = commands.get_entity(light_entity)
[INFO] [stdout]     |                           ----^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity_commands`
[INFO] [stdout]    --> src/garden_lighting.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     .and_then(|mut entity_commands| {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lighting_manager`
[INFO] [stdout]    --> src/garden_lighting.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 196 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lighting_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/garden_lighting.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 |     for (entity, mut solar_light, mut light_source, transform) in solar_light_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_light`
[INFO] [stdout]    --> src/garden_lighting.rs:264:27
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 if let Ok(mut point_light) = commands.get_entity(light_entity)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lighting_manager`
[INFO] [stdout]    --> src/garden_lighting.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lighting_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/garden_lighting.rs:325:10
[INFO] [stdout]     |
[INFO] [stdout] 325 |     for (entity, mut garden_lamp, mut light_source, transform) in garden_lamp_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insect_entity`
[INFO] [stdout]    --> src/garden_lighting.rs:412:10
[INFO] [stdout]     |
[INFO] [stdout] 412 |     for (insect_entity, mut insect_transform, mut insect) in insect_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insect_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_probability` and `color` are never used
[INFO] [stdout]    --> src/bird.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl BirdSpecies {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn spawn_probability(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn color(&self) -> Color {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attraction_radius` is never read
[INFO] [stdout]   --> src/feeder.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Feeder {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 23 |     pub feeder_type: FeederType,
[INFO] [stdout] 24 |     pub attraction_radius: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species`, `position`, and `dominance_level` are never read
[INFO] [stdout]   --> src/bird_ai/components.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SocialBirdInfo {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 40 |     pub entity: Entity,
[INFO] [stdout] 41 |     pub species: crate::bird::BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 42 |     pub position: Vec2,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub dominance_level: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SocialBirdInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mate`, `rivals`, `flock_members`, `courtship_targets`, `territory_center`, and `territory_radius` are never read
[INFO] [stdout]    --> src/bird_ai/components.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct SocialRelationships {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 117 |     pub mate: Option<Entity>,              // Current mate if paired
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 118 |     pub rivals: Vec<Entity>,               // Territorial rivals
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 119 |     pub flock_members: Vec<Entity>,        // Current flock companions
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub courtship_targets: Vec<Entity>,    // Birds being courted
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     pub territory_center: Option<Vec2>,    // Center of claimed territory
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |     pub territory_radius: f32,             // Size of claimed territory
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ground_preference` is never read
[INFO] [stdout]    --> src/bird_ai/components.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct ForagingTraits {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 128 |     pub foraging_style: ForagingStyle,
[INFO] [stdout] 129 |     pub ground_preference: f32,    // 0.0 = never on ground, 1.0 = primarily ground feeder
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `retrieval_memory` is never read
[INFO] [stdout]    --> src/bird_ai/components.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub struct CacheData {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 155 |     pub cached_locations: Vec<CacheSpot>,
[INFO] [stdout] 156 |     pub retrieval_memory: f32,     // How well bird remembers cache locations
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]  --> src/bird_ai/bt.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Rule {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load_from_asset` is never used
[INFO] [stdout]   --> src/bird_ai/config.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl BehaviorTreeConfig {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 70 |     pub fn load_from_asset(asset_server: &AssetServer) -> Handle<BehaviorTreeConfig> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rule_of_thirds`, `center_guides`, and `golden_ratio` are never read
[INFO] [stdout]   --> src/photo_mode/components.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct CompositionGrid {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 12 |     pub rule_of_thirds: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub center_guides: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub golden_ratio: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DepthOfFieldPreview` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct DepthOfFieldPreview {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExposureSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ExposureSlider;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApertureSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ApertureSlider;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ISOSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ISOSlider;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompositionAnalysis` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct CompositionAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightingAnalysis` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct LightingAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_depth_preview` is never read
[INFO] [stdout]   --> src/photo_mode/resources.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct PhotoModeSettings {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub show_depth_preview: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discovered` is never used
[INFO] [stdout]   --> src/photo_mode/resources.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl DiscoveredSpecies {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_discovered(&self, species: &BirdSpecies) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_handle` is never read
[INFO] [stdout]   --> src/photo_mode/resources.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct SavedPhoto {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub image_handle: Handle<Image>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SavedPhoto` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_species_photos` is never used
[INFO] [stdout]   --> src/photo_mode/resources.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl PhotoCollection {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_species_photos(&self, species: BirdSpecies) -> Vec<&SavedPhoto> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_photo_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn calculate_photo_score(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_species_rarity_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn get_species_rarity_score(species: BirdSpecies) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_bird_species_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn match_bird_species_score(species: crate::bird::BirdSpecies) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LensType` is never used
[INFO] [stdout]  --> src/photo_mode/advanced_photo.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum LensType {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `zoom_range`, `field_of_view`, `name`, and `unlock_cost` are never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LensType {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn zoom_range(&self) -> (f32, f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn field_of_view(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn unlock_cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PhotoFilter` is never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum PhotoFilter {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `unlock_cost`, and `apply_color_adjustment` are never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl PhotoFilter {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 65 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn unlock_cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn apply_color_adjustment(&self, base_color: Color) -> Color {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdvancedCameraSettings` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct AdvancedCameraSettings {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FocusMode` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub enum FocusMode {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MeteringMode` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:169:10
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub enum MeteringMode {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WhiteBalance` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:176:10
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub enum WhiteBalance {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompositionGuides` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct CompositionGuides {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoCollection` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct PhotoCollection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SavedPhoto` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct SavedPhoto {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoAlbum` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct PhotoAlbum {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoMetadata` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct PhotoMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_lens_bonus`, `calculate_filter_bonus`, and `calculate_advanced_total` are never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl PhotoScore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 250 |     pub fn calculate_lens_bonus(&self, lens: LensType, species: Option<BirdSpecies>) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn calculate_filter_bonus(&self, filter: PhotoFilter) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn calculate_advanced_total(&self, lens: LensType, filter: PhotoFilter, species: Option<BirdSpecies>) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LensSwitchEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub struct LensSwitchEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterChangeEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct FilterChangeEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoSavedEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct PhotoSavedEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tab` is never read
[INFO] [stdout]   --> src/journal/components.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct JournalTabContent {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 15 |     pub tab: JournalTab,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpeciesButton` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SpeciesButton(pub BirdSpecies);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetailPanel` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct DetailPanel;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabIndicator` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct TabIndicator;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldNotePage` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FieldNotePage;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationMap` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MigrationMap;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mission_id` is never read
[INFO] [stdout]   --> src/journal/components.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ResearchMissionCard {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 59 |     pub mission_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResearchDataVisualization` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct ResearchDataVisualization;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/journal/components.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct PhotoCard {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 70 |     pub timestamp: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `achievement` is never read
[INFO] [stdout]   --> src/journal/components.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AchievementCard {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 75 |     pub achievement: crate::achievements::Achievement,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `collected_data` is never read
[INFO] [stdout]    --> src/journal/resources.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct ResearchMissionManager {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub collected_data: HashMap<DataType, u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration_days` and `research_points` are never used
[INFO] [stdout]    --> src/journal/resources.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl MissionDifficulty {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 204 |     pub fn duration_days(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn research_points(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_species_button` is never used
[INFO] [stdout]  --> src/journal/ui_builder.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn ui_species_button(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `species_color` is never used
[INFO] [stdout]   --> src/journal/ui_builder.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn species_color(species: BirdSpecies) -> Color {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_text` is never used
[INFO] [stdout]  --> src/user_interface/builder.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ui_text(
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_button` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn ui_button(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_icon` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn ui_icon(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_panel` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn ui_panel(
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `normal_color`, `hovered_color`, `pressed_color`, and `border_color` are never read
[INFO] [stdout]   --> src/user_interface/styles.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct ButtonStyle {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  6 |     pub width: Val,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  7 |     pub height: Val,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  8 |     pub normal_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  9 |     pub hovered_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub pressed_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub border_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `background_color` and `border_color` are never read
[INFO] [stdout]   --> src/user_interface/styles.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PanelStyle {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 29 |     pub background_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub border_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_value` is never read
[INFO] [stdout]   --> src/user_interface/slider/components.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SliderOptions {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 17 |     pub format: ValueFormat,
[INFO] [stdout] 18 |     pub show_value: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SliderEmitMode` is never used
[INFO] [stdout]   --> src/user_interface/slider/components.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum SliderEmitMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderPendingChange` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SliderPendingChange {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Percent` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum ValueFormat {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] 34 |     Precision(usize),
[INFO] [stdout] 35 |     Percent(usize),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `format` is never used
[INFO] [stdout]   --> src/user_interface/slider/components.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl ValueFormat {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 56 |     pub fn format(&self, value: f32) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Vertical` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum SliderOrientation {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 82 |     Horizontal,
[INFO] [stdout] 83 |     Vertical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderOrientation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `handle_entity`, `previous_value`, and `orientation` are never read
[INFO] [stdout]   --> src/user_interface/slider/events.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct SliderValueChangedEvent {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout]  6 |     pub entity: Entity,
[INFO] [stdout]  7 |     pub handle_entity: Entity,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]  8 |     pub previous_value: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     pub new_value: f32,
[INFO] [stdout] 10 |     pub orientation: SliderOrientation,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderValueChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slider_buffer_changes_system` is never used
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn slider_buffer_changes_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slider_emit_buffered_changes_system` is never used
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn slider_emit_buffered_changes_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_step`, `with_orientation`, and `spawn_with_parent` are never used
[INFO] [stdout]    --> src/user_interface/slider/builder.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl<'w, 's, 'a> SliderBuilder<'w, 's, 'a> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn with_step(mut self, step: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn with_orientation(mut self, orientation: SliderOrientation) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn spawn_with_parent(self, parent_entity: Entity) -> Entity {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]   --> src/user_interface/dropdown/resources.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct DropdownOption {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 12 |     pub label: String,
[INFO] [stdout] 13 |     pub icon: Option<Handle<Image>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DropdownOption` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `previous_id`, `new_id`, and `previous_label` are never read
[INFO] [stdout]   --> src/user_interface/dropdown/events.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DropdownChangedEvent {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub previous_id: Option<DropdownOptionId>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 17 |     pub new_id: Option<DropdownOptionId>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub previous_label: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DropdownChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_placeholder` is never used
[INFO] [stdout]   --> src/user_interface/dropdown/builder.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl DropdownBuilder {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_placeholder(mut self, placeholder: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `velocity` is never read
[INFO] [stdout]   --> src/user_interface/toggle/components.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ToggleAnimation {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub velocity: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToggleDragState` is never constructed
[INFO] [stdout]   --> src/user_interface/toggle/components.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct ToggleDragState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Programmatic` is never constructed
[INFO] [stdout]  --> src/user_interface/toggle/events.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ToggleChangeKind {
[INFO] [stdout]   |          ---------------- variant in this enum
[INFO] [stdout] 5 |     User,
[INFO] [stdout] 6 |     Programmatic,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ToggleChangeKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/user_interface/toggle/events.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ToggleChangedEvent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub kind: ToggleChangeKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToggleChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `disabled` and `spawn` are never used
[INFO] [stdout]   --> src/user_interface/toggle/builder.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'w, 's, 'a> ToggleBuilder<'w, 's, 'a> {
[INFO] [stdout]    | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn disabled(mut self, disabled: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn spawn(self) -> Entity {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scrollbar` is never constructed
[INFO] [stdout]   --> src/user_interface/scrollable.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Scrollbar;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity` and `delta` are never read
[INFO] [stdout]   --> src/user_interface/scrollable.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ScrollEvent {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 64 |     pub entity: Entity,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 65 |     pub delta: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_scroll_speed` is never used
[INFO] [stdout]   --> src/user_interface/scrollable.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<'w, 's, 'a> ScrollableBuilder<'w, 's, 'a> {
[INFO] [stdout]    | ---------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn with_scroll_speed(mut self, speed: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabDisabled` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TabDisabled;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabPanel` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TabPanel;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabInteractionState` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct TabInteractionState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabAnimation` is never constructed
[INFO] [stdout]    --> src/user_interface/tab_group/components.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct TabAnimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `change_kind` is never read
[INFO] [stdout]  --> src/user_interface/tab_group/events.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TabChangedEvent {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub change_kind: TabChangeKind,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TabChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Programmatic` and `Initialization` are never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/events.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum TabChangeKind {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 13 |     UserInteraction,
[INFO] [stdout] 14 |     Programmatic,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     Initialization,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TabChangeKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UpdateVisuals` is never constructed
[INFO] [stdout]  --> src/user_interface/tab_group/systems.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TabSystem {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     UpdateVisuals,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TabSystem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tab_visual_update_system` is never used
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn tab_visual_update_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabGroupBuilder` is never constructed
[INFO] [stdout]  --> src/user_interface/tab_group/builder.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct TabGroupBuilder<'w, 's, 'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabDefinition` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/builder.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TabDefinition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_tab`, `with_config`, `with_initial_tab`, and `spawn` are never used
[INFO] [stdout]   --> src/user_interface/tab_group/builder.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'w, 's, 'a> TabGroupBuilder<'w, 's, 'a> {
[INFO] [stdout]    | -------------------------------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new(commands: &'a mut Commands<'w, 's>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_tab(mut self, name: impl Into<String>, content_builder: impl FnOnce(&mut Commands) -> Entity + 'static) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn with_config(mut self, config: TabGroupConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn with_initial_tab(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn spawn(self) -> Entity {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBarBundle` is never constructed
[INFO] [stdout]  --> src/user_interface/progress_bar.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProgressBarBundle {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_value`, `with_visuals`, and `with_size` are never used
[INFO] [stdout]   --> src/user_interface/progress_bar.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ProgressBarBundle {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(min: f32, max: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn with_value(mut self, value: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_visuals(mut self, visuals: ProgressBarVisuals) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn with_size(mut self, width: Val, height: Val) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `percentage` is never used
[INFO] [stdout]   --> src/user_interface/progress_bar.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ProgressBar {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn percentage(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fraction`, `Absolute`, and `Custom` are never constructed
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub enum ProgressTextFormat {
[INFO] [stdout]     |          ------------------ variants in this enum
[INFO] [stdout] 240 |     Percentage,
[INFO] [stdout] 241 |     Fraction,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 242 |     Absolute,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 243 |     Custom(Arc<dyn Fn(f32, f32) -> String + Send + Sync>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressTextFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_entity`, `previous_value`, `new_value`, and `change_kind` are never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub struct ProgressChangedEvent {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 274 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     pub previous_value: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 276 |     pub new_value: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 277 |     pub change_kind: ProgressChangeKind,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_entity`, `threshold`, and `crossed_up` are never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct ProgressThresholdEvent {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 282 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 283 |     pub threshold: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 284 |     pub crossed_up: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressThresholdEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `progress_entity` is never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:289:9
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub struct ProgressCompletedEvent {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] 289 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressCompletedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `default_font` is never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct ProgressBarAssets {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 309 |     pub default_font: Handle<Font>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:579:12
[INFO] [stdout]     |
[INFO] [stdout] 542 | impl<'w, 's, 'a> ProgressBarBuilder<'w, 's, 'a> {
[INFO] [stdout]     | ----------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 579 |     pub fn insert(mut self, parent: Entity) -> Entity {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_progress_value` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:737:8
[INFO] [stdout]     |
[INFO] [stdout] 737 | pub fn set_progress_value(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_progress` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:748:8
[INFO] [stdout]     |
[INFO] [stdout] 748 | pub fn increment_progress(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `safe_despawn_delayed` is never used
[INFO] [stdout]   --> src/despawn.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub trait SafeDespawn {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 35 |     fn safe_despawn(&mut self) -> &mut Self;
[INFO] [stdout] 36 |     fn safe_despawn_delayed(&mut self, delay: f32) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_ambient` is never used
[INFO] [stdout]   --> src/audio/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn play_ambient(commands: &mut Commands, handle: Handle<bevy::audio::AudioSource>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_bird_sound` is never used
[INFO] [stdout]   --> src/audio/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn play_bird_sound(commands: &mut Commands, entity: Entity, species: crate::bird::BirdSpecies, handle: Handle<bevy::audio::Audio...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_ui_sound` is never used
[INFO] [stdout]   --> src/audio/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn play_ui_sound(commands: &mut Commands, handle: Handle<bevy::audio::AudioSource>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_entity`, `max_distance`, and `volume_curve` are never read
[INFO] [stdout]  --> src/audio/components.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PositionalAudioSource {
[INFO] [stdout]   |            --------------------- fields in this struct
[INFO] [stdout] 7 |     pub source_entity: Entity,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 8 |     pub max_distance: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 9 |     pub volume_curve: AudioVolumeCurve,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Exponential` is never constructed
[INFO] [stdout]   --> src/audio/components.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum AudioVolumeCurve {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] 14 |     Linear,
[INFO] [stdout] 15 |     Exponential,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioVolumeCurve` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sink_handle` is never read
[INFO] [stdout]   --> src/audio/components.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AudioSinkComponent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 21 |     pub sink_handle: Handle<bevy::audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioCleanupTimer` is never constructed
[INFO] [stdout]   --> src/audio/components.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AudioCleanupTimer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PlayGlobal`, `PlayAt`, and `PlayFromEntity` are never constructed
[INFO] [stdout]   --> src/audio/resources.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum AudioCommand {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 46 |     PlayGlobal,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 47 |     PlayAt(Vec2),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 48 |     PlayFromEntity(Entity),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioCommand` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BirdVocalization`, `AmbientTrack`, and `UiSound` are never constructed
[INFO] [stdout]   --> src/audio/resources.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum AudioSource {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 53 |     BirdVocalization(Handle<bevy::audio::AudioSource>, BirdSpecies),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     AmbientTrack(Handle<bevy::audio::AudioSource>),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 55 |     UiSound(Handle<bevy::audio::AudioSource>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioSource` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `notification_type` is never read
[INFO] [stdout]  --> src/notifications/components.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Notification {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     pub lifetime: Timer,
[INFO] [stdout] 9 |     pub notification_type: NotificationType,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/notifications/resources.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl NotificationQueue {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeatherEffectEntity` is never constructed
[INFO] [stdout]  --> src/environment/components.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct WeatherEffectEntity;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `base_color` is never read
[INFO] [stdout]   --> src/environment/components.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DynamicAmbientLight {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 11 |     pub base_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `blend_mode` is never read
[INFO] [stdout]   --> src/environment/components.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct DayNightOverlay {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub blend_mode: DayNightBlendMode,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cast_shadows` is never read
[INFO] [stdout]   --> src/environment/components.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SunLight {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub cast_shadows: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Overlay` and `SoftLight` are never constructed
[INFO] [stdout]   --> src/environment/components.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum DayNightBlendMode {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 43 |     Multiply,
[INFO] [stdout] 44 |     Overlay,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 45 |     SoftLight,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DayNightBlendMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next` and `migration_factor` are never used
[INFO] [stdout]   --> src/environment/components.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Season {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 57 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn migration_factor(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `requires_shelter` is never used
[INFO] [stdout]    --> src/environment/components.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl Weather {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn requires_shelter(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_spawn_probability` is never used
[INFO] [stdout]    --> src/environment/resources.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl SeasonalState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_spawn_probability(&self, species: &BirdSpecies) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `temperature` is never read
[INFO] [stdout]    --> src/environment/resources.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct WeatherChangeEvent {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 180 |     pub new_weather: Weather,
[INFO] [stdout] 181 |     pub temperature: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_hour` and `new_day` are never read
[INFO] [stdout]    --> src/environment/resources.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct TimeChangeEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 186 |     pub new_hour: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 187 |     pub new_day: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamUser` is never constructed
[INFO] [stdout]  --> src/steam/components.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SteamUser {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workshop_id` and `description` are never read
[INFO] [stdout]   --> src/steam/components.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct WorkshopItem {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub workshop_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `behavior_data` is never read
[INFO] [stdout]   --> src/steam/components.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     CustomBird {
[INFO] [stdout]    |     ---------- field in this variant
[INFO] [stdout] 21 |         species_name: String,
[INFO] [stdout] 22 |         behavior_data: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopItemType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supported_food_types` is never read
[INFO] [stdout]   --> src/steam/components.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct FeederWorkshopStats {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub supported_food_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeederWorkshopStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `app_id` and `client` are never read
[INFO] [stdout]   --> src/steam/resources.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct SteamState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub app_id: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub user_id: Option<u64>,
[INFO] [stdout] 14 |     pub client: SteamClientWrapper,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `achievement_id` is never read
[INFO] [stdout]    --> src/steam/resources.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct SteamAchievementEvent {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 102 |     pub achievement_id: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stat_name` and `value` are never read
[INFO] [stdout]    --> src/steam/resources.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct SteamStatsEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 107 |     pub stat_name: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 108 |     pub value: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_connection` is never used
[INFO] [stdout]   --> src/steam/systems.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn check_steam_connection() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_process` is never used
[INFO] [stdout]   --> src/steam/systems.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn check_steam_process() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_alternative_steam_processes` is never used
[INFO] [stdout]    --> src/steam/systems.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn check_alternative_steam_processes() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_directory_linux` is never used
[INFO] [stdout]    --> src/steam/systems.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn check_steam_directory_linux() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_api_availability` is never used
[INFO] [stdout]    --> src/steam/systems.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn check_steam_api_availability() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_config_files` is never used
[INFO] [stdout]    --> src/steam/systems.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn check_steam_config_files() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_steam_systems_with_check` is never used
[INFO] [stdout]    --> src/steam/systems.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn initialize_steam_systems_with_check(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_steam_leaderboards` is never used
[INFO] [stdout]    --> src/steam/systems.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn sync_steam_leaderboards(score: u64, category: &str) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfilingDisplay` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ProfilingDisplay;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceMonitored` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PerformanceMonitored {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityCounter` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct EntityCounter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `update_time_ms`, `render_time_ms`, `ai_system_time_ms`, and `physics_time_ms` are never read
[INFO] [stdout]   --> src/performance/resources.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PerformanceMetrics {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub update_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub render_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub ai_system_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     pub physics_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_times`, `system_call_counts`, and `profiling_enabled` are never read
[INFO] [stdout]   --> src/performance/resources.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct ProfilingData {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 85 |     pub system_times: HashMap<String, Duration>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 86 |     pub system_call_counts: HashMap<String, u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub profiling_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `issue_type` and `suggested_fix` are never read
[INFO] [stdout]    --> src/performance/resources.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct PerformanceBottleneck {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 107 |     pub system_name: String,
[INFO] [stdout] 108 |     pub issue_type: BottleneckType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub suggested_fix: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerformanceBottleneck` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HighCpuUsage`, `SlowSystem`, `IneffientQuery`, and `MemoryLeak` are never constructed
[INFO] [stdout]    --> src/performance/resources.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum BottleneckType {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 117 |     HighCpuUsage,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     SlowSystem,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 121 |     TooManyEntities,
[INFO] [stdout] 122 |     IneffientQuery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 123 |     MemoryLeak,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BottleneckType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Low` is never constructed
[INFO] [stdout]    --> src/performance/resources.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub enum BottleneckSeverity {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] 128 |     Low,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BottleneckSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `flock_id` and `social_distance` are never read
[INFO] [stdout]  --> src/flocking/components.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct FlockMember {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     pub flock_id: Option<Entity>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub social_distance: f32,      // Preferred distance from other birds
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species`, `members`, `center`, and `max_size` are never read
[INFO] [stdout]   --> src/flocking/components.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Flock {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 23 |     pub species: BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 24 |     pub members: Vec<Entity>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |     pub center: Vec2,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 26 |     pub max_size: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/flocking/components.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Flock {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(species: BirdSpecies) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `center` and `species` are never read
[INFO] [stdout]   --> src/flocking/components.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Territory {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 42 |     pub center: Vec2,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 43 |     pub radius: f32,
[INFO] [stdout] 44 |     pub species: BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `detection_radius`, `panic_threshold`, and `escape_speed_multiplier` are never read
[INFO] [stdout]   --> src/flocking/components.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct PredatorAvoidance {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 61 |     pub detection_radius: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub panic_threshold: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     pub escape_speed_multiplier: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `intensity` and `depth_layer` are never read
[INFO] [stdout]  --> src/weather_effects/components.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RainParticle {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub intensity: f32,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 8 |     pub depth_layer: u8,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/weather_effects/components.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SnowParticle {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub size: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]   --> src/weather_effects/components.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |     FallingLeaf { color: Color, rotation_speed: f32 },
[INFO] [stdout]    |     -----------   ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnvironmentalParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FeatherDrift` is never constructed
[INFO] [stdout]   --> src/weather_effects/components.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum EnvironmentalParticleType {
[INFO] [stdout]    |          ------------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     FeatherDrift { source_species: crate::bird::BirdSpecies },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnvironmentalParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `particle_type`, `velocity`, and `source_entity` are never read
[INFO] [stdout]   --> src/weather_effects/components.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct InteractiveParticle {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 49 |     pub particle_type: InteractiveParticleType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub velocity: Vec2,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     pub lifetime: f32,
[INFO] [stdout] 52 |     pub source_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SeedScatter`, `WaterSplash`, `BirdSplash`, and `FeederCrumbs` are never constructed
[INFO] [stdout]   --> src/weather_effects/components.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InteractiveParticleType {
[INFO] [stdout]    |          ----------------------- variants in this enum
[INFO] [stdout] 57 |     SeedScatter { seed_type: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 58 |     WaterSplash { ripple_strength: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     BirdSplash { splash_size: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 60 |     FeederCrumbs { food_type: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InteractiveParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_particle_system` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn interactive_particle_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_seed_scatter` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn spawn_seed_scatter(commands: &mut Commands, position: Vec2, species: crate::bird::BirdSpecies, bird_data: &crate::bird_data::Bir...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_water_splash` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn spawn_water_splash(commands: &mut Commands, position: Vec2, is_bathing: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_particle_movement` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn interactive_particle_movement(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_feeding_preference`, `get_behavioral_trait`, and `get_size_category` are never used
[INFO] [stdout]   --> src/bird_data.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl BirdDataRegistry {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn get_feeding_preference(&self, species: &BirdSpecies, food_type: &str) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn get_behavioral_trait(&self, species: &BirdSpecies, trait_name: &str) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn get_size_category(&self, species: &BirdSpecies) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `feeding_preference_fallback`, `behavioral_trait_fallback`, and `size_category_fallback` are never used
[INFO] [stdout]    --> src/bird_data.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl BirdSpecies {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 109 |     fn feeding_preference_fallback(&self, food_type: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn behavioral_trait_fallback(&self, trait_name: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn size_category_fallback(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `species_preference` is never read
[INFO] [stdout]   --> src/legacy_smart_objects.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PerchingSpot {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub species_preference: Vec<BirdSpecies>, // Which species prefer this perch
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Post` and `Roof` are never constructed
[INFO] [stdout]   --> src/legacy_smart_objects.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum PerchType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 40 |     Branch,      // Natural tree branch
[INFO] [stdout] 41 |     Post,        // Artificial perching post
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Wire,        // Utility wire or fence
[INFO] [stdout] 43 |     Roof,        // Building edge or roof
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerchType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `concealment` is never read
[INFO] [stdout]   --> src/legacy_smart_objects.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Shelter {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub concealment: f32,        // 0.0-1.0, protection from predators
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RockCrevice` and `Undergrowth` are never constructed
[INFO] [stdout]   --> src/legacy_smart_objects.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum ShelterType {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 85 |     RockCrevice,    // Natural rock formation
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 86 |     Undergrowth,    // Low vegetation cover
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShelterType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `flow_rate` is never read
[INFO] [stdout]    --> src/legacy_smart_objects.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct WaterFeature {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub flow_rate: f32,          // For moving water features
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pond` and `DrippingTap` are never constructed
[INFO] [stdout]    --> src/legacy_smart_objects.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub enum WaterType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 136 |     Pond,          // Large still water
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 137 |     Creek,         // Natural flowing water
[INFO] [stdout] 138 |     DrippingTap,   // Artificial drip water source
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WaterType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `utility_decay_rate` and `duration_range` are never used
[INFO] [stdout]    --> src/legacy_smart_objects.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl BirdAction {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 177 |     pub fn utility_decay_rate(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn duration_range(&self) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workshop_metadata` is never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct WorkshopUploadEvent {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] 123 |     pub object_id: String,
[INFO] [stdout] 124 |     pub workshop_metadata: WorkshopItemMetadata,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `install_path` is never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct WorkshopDownloadEvent {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 129 |     pub workshop_item_id: String,
[INFO] [stdout] 130 |     pub install_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workshop_metadata`, `local_path`, and `is_subscribed` are never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct WorkshopSmartObject {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 145 |     pub base_definition: SmartObjectDefinition,
[INFO] [stdout] 146 |     pub workshop_metadata: WorkshopItemMetadata,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 |     pub local_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 148 |     pub is_subscribed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopSmartObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct WorkshopItemMetadata {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 153 |     pub title: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 154 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 155 |     pub author: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 156 |     pub version: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 157 |     pub tags: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 158 |     pub thumbnail_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     pub rating: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 160 |     pub download_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     pub file_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 162 |     pub dependencies: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopItemMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all_available_definitions`, `register_workshop_item`, `get_workshop_items_by_author`, and `search_workshop_items` are never used
[INFO] [stdout]    --> src/smart_objects/mod.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl SmartObjectRegistry {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn get_all_available_definitions(&self) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn register_workshop_item(&mut self, id: String, item: WorkshopSmartObject) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get_workshop_items_by_author(&self, author: &str) -> Vec<&WorkshopSmartObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn search_workshop_items(&self, query: &str, tags: &[String]) -> Vec<&WorkshopSmartObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_usage_time` is never read
[INFO] [stdout]    --> src/smart_objects/config.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct ConfigurableSmartObject {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub total_usage_time: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigurableSmartObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_definitions_by_category` and `get_unlocked_items` are never used
[INFO] [stdout]    --> src/smart_objects/config.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl SmartObjectCatalog {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_definitions_by_category(&self, category: &str) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_unlocked_items(&self, player_level: u32) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_attracted_species`, `parse_bird_species`, `get_species_preference`, and `can_accommodate_user` are never used
[INFO] [stdout]    --> src/smart_objects/config.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl SmartObjectDefinition {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn get_attracted_species(&self) -> Vec<BirdSpecies> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn parse_bird_species(&self, species: &str) -> Option<BirdSpecies> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn get_species_preference(&self, species: &str) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn can_accommodate_user(&self, current_users: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `published_items` is never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SteamWorkshopClient {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub published_items: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id`, `title`, `local_path`, `last_updated`, `is_installed`, and `needs_update` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct WorkshopSubscription {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 30 |     pub item_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub local_path: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 33 |     pub last_updated: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub is_installed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub needs_update: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopSubscription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `callback_entity` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct WorkshopDownloadTask {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 40 |     pub item_id: String,
[INFO] [stdout] 41 |     pub priority: DownloadPriority,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 42 |     pub callback_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopDownloadTask` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Low`, `High`, and `Critical` are never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum DownloadPriority {
[INFO] [stdout]    |          ---------------- variants in this enum
[INFO] [stdout] 47 |     Low,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 48 |     Normal,
[INFO] [stdout] 49 |     High,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 50 |     Critical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadPriority` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `upload_metadata` and `preview_image_path` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct WorkshopUploadTask {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 55 |     pub package: WorkshopPackage,
[INFO] [stdout] 56 |     pub upload_metadata: WorkshopUploadMetadata,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub preview_image_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopUploadTask` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, `tags`, `visibility`, and `change_notes` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct WorkshopUploadMetadata {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] 62 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 63 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 64 |     pub tags: Vec<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 65 |     pub visibility: WorkshopVisibility,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 66 |     pub change_notes: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopUploadMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Public`, `FriendsOnly`, and `Private` are never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum WorkshopVisibility {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 71 |     Public,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 72 |     FriendsOnly,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 73 |     Private,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopVisibility` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopBrowser` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct WorkshopBrowser;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopItemCard` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct WorkshopItemCard {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopSearchBar` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct WorkshopSearchBar;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopFilterPanel` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct WorkshopFilterPanel;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sort_order`, `current_page`, `items_per_page`, `loaded_items`, and `selected_item` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:96:9
[INFO] [stdout]     |
[INFO] [stdout]  92 | pub struct WorkshopBrowserState {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub sort_order: WorkshopSortOrder,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]  97 |     pub current_page: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub items_per_page: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub loaded_items: Vec<WorkshopBrowserItem>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub selected_item: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `categories`, `rating_min`, `author`, `subscribed_only`, and `compatible_only` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct WorkshopFilters {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 105 |     pub categories: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 106 |     pub tags: Vec<String>,
[INFO] [stdout] 107 |     pub rating_min: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 108 |     pub author: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 109 |     pub subscribed_only: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub compatible_only: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopFilters` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Recent`, `Rating`, `Alphabetical`, `Author`, and `Downloads` are never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum WorkshopSortOrder {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] 115 |     Popular,
[INFO] [stdout] 116 |     Recent,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 117 |     Rating,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 118 |     Alphabetical,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 119 |     Author,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 120 |     Downloads,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopSortOrder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct WorkshopBrowserItem {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 125 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 126 |     pub title: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 127 |     pub author: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 128 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 129 |     pub preview_image: Option<Handle<Image>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 130 |     pub rating: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 131 |     pub download_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 132 |     pub file_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 133 |     pub last_updated: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 134 |     pub tags: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 135 |     pub is_subscribed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 136 |     pub is_installed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopBrowserItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id` and `rating` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct RateItemEvent {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 180 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 181 |     pub rating: u32, // 1-5 stars
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id` and `report_reason` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct ReportItemEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 186 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 187 |     pub report_reason: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `package` and `metadata` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct PublishItemEvent {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 192 |     pub package: WorkshopPackage,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 193 |     pub metadata: WorkshopUploadMetadata,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id`, `package`, and `change_notes` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct UpdatePublishedItemEvent {
[INFO] [stdout]     |            ------------------------ fields in this struct
[INFO] [stdout] 198 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 199 |     pub package: WorkshopPackage,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 200 |     pub change_notes: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopValidator` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:326:12
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub struct WorkshopValidator;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `validate_package` is never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl WorkshopValidator {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 329 |     pub fn validate_package(package: &WorkshopPackage) -> WorkshopValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopValidationResult` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:370:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub struct WorkshopValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | impl WorkshopValidationResult {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 376 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopHelpers` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:382:12
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub struct WorkshopHelpers;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `generate_preview_image`, `create_workshop_tags`, and `estimate_download_size` are never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | impl WorkshopHelpers {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 385 |     pub fn generate_preview_image(definition: &SmartObjectDefinition) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn create_workshop_tags(definition: &SmartObjectDefinition) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn estimate_download_size(package: &WorkshopPackage) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_open`, `current_template`, `editing_mode`, `preview_entity`, `unsaved_changes`, and `selected_property_category` are never read
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CreationKitState {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  8 |     pub is_open: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]  9 |     pub current_template: Option<SmartObjectDefinition>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub editing_mode: EditingMode,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub preview_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub unsaved_changes: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub selected_property_category: PropertyCategory,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Creating`, `Modifying`, and `Testing` are never constructed
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum EditingMode {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Creating,    // Creating new object from scratch
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     Modifying,   // Modifying existing object
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 22 |     Testing,     // Testing object in game world
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Visual`, `Physics`, `Behavior`, `Attraction`, `Economy`, and `Workshop` are never constructed
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum PropertyCategory {
[INFO] [stdout]    |          ---------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Visual,      // Appearance and animation
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     Physics,     // Collision and weight
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     Behavior,    // Actions and utility
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     Attraction,  // Species preferences
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 33 |     Economy,     // Cost and durability
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     Workshop,    // Modding and sharing
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `templates` is never read
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct CreationKitTemplates {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 40 |     pub templates: HashMap<String, SmartObjectDefinition>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateNewObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct CreateNewObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SaveObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct SaveObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct LoadObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct TestObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExportObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct ExportObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportFormat` is never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:218:10
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub enum ExportFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PropertyConstraints` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct PropertyConstraints {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectValidator` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub struct ObjectValidator;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `validate_definition` is never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl ObjectValidator {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 269 |     pub fn validate_definition(definition: &SmartObjectDefinition, constraints: &PropertyConstraints) -> ValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationResult` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 330 | pub struct ValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_valid` and `has_warnings` are never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl ValidationResult {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 336 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn has_warnings(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreationKitHelpers` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 346 | pub struct CreationKitHelpers;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_property_display_name`, `get_property_tooltip`, `get_category_color`, `generate_unique_id`, and `export_to_workshop_format` are never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl CreationKitHelpers {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 349 |     pub fn get_property_display_name(property: &str) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn get_property_tooltip(property: &str) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn get_category_color(category: &str) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn generate_unique_id(base_name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn export_to_workshop_format(definition: &SmartObjectDefinition) -> WorkshopPackage {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `required_assets`, `metadata_version`, and `compatibility_version` are never read
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct WorkshopPackage {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 420 |     pub definition: SmartObjectDefinition,
[INFO] [stdout] 421 |     pub required_assets: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 422 |     pub metadata_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 423 |     pub compatibility_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopPackage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `object_type`, `seasonal_visibility`, `visual_appeal`, and `environmental_story` are never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AestheticObject {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 22 |     pub object_type: AestheticType,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     pub seasonal_visibility: bool,    // Whether this object appears/disappears seasonally
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub visual_appeal: f32,          // Contributes to photo composition scores
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub environmental_story: String, // What story this object tells
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opacity` and `scale_modifier` are never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SeasonalDecoration {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub opacity: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 33 |     pub scale_modifier: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_season` is never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct FlowerBed {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub peak_season: Season,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Wildflowers`, `SunBeams`, and `MailboxPost` are never constructed
[INFO] [stdout]   --> src/aesthetic_objects.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum AestheticType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Wildflowers,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     SunBeams,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     MailboxPost,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AestheticType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Daffodils`, `Lilacs`, `Sunflowers`, and `Pansies` are never constructed
[INFO] [stdout]   --> src/aesthetic_objects.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum FlowerType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 83 |     Tulips,      // Early spring
[INFO] [stdout] 84 |     Daffodils,   // Early spring
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 85 |     Lilacs,      // Late spring
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 86 |     Roses,       // Summer
[INFO] [stdout] 87 |     Sunflowers,  // Late summer
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 88 |     Mums,        // Fall
[INFO] [stdout] 89 |     Pansies,     // Cool weather
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FlowerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `seasonal_appeal` and `provides_photo_bonus` are never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl AestheticType {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn seasonal_appeal(&self, season: Season) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn provides_photo_bonus(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `drift_speed`, `direction`, and `opacity_cycle` are never read
[INFO] [stdout]    --> src/aesthetic_objects.rs:548:9
[INFO] [stdout]     |
[INFO] [stdout] 547 | pub struct CloudShadow {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 548 |     pub drift_speed: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 549 |     pub direction: Vec2,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 550 |     pub opacity_cycle: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cloud_shadow_system` is never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:648:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub fn cloud_shadow_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_aesthetic_bonus` is never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:676:8
[INFO] [stdout]     |
[INFO] [stdout] 676 | pub fn calculate_aesthetic_bonus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CatalogItem` is never constructed
[INFO] [stdout]  --> src/catalog/components.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CatalogItem {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/catalog/components.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CategoryButton {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub category: crate::catalog::resources::ItemCategory,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ItemCard` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ItemCard {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PurchaseButton` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct PurchaseButton {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaceButton` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct PlaceButton {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `placement_cost` is never read
[INFO] [stdout]   --> src/catalog/components.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct PlaceableObject {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 41 |     pub item_type: PlaceableItemType,
[INFO] [stdout] 42 |     pub placement_cost: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `description` and `attracts_species` are never used
[INFO] [stdout]    --> src/catalog/components.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl PlaceableItemType {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn description(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn attracts_species(&self) -> Vec<BirdSpecies> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `selected_category` is never read
[INFO] [stdout]  --> src/catalog/resources.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CatalogState {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     pub is_open: bool,
[INFO] [stdout] 8 |     pub selected_category: ItemCategory,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `items` are never used
[INFO] [stdout]   --> src/catalog/resources.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl ItemCategory {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn name(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn items(&self) -> Vec<PlaceableItemType> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_category_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn handle_category_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_purchase_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn handle_purchase_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_place_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:278:8
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub fn handle_place_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_catalog_ui` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout] 399 | pub fn update_catalog_ui(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_catalog_visibility` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:715:8
[INFO] [stdout]     |
[INFO] [stdout] 715 | pub fn update_catalog_visibility(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SaveMarker` is never constructed
[INFO] [stdout]  --> src/save_load/components.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SaveMarker;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `filename` and `exists` are never read
[INFO] [stdout]   --> src/save_load/resources.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct SaveFileInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 79 |     pub slot: u32,
[INFO] [stdout] 80 |     pub filename: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 81 |     pub last_modified: std::time::SystemTime,
[INFO] [stdout] 82 |     pub exists: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SaveFileInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `save_name` is never read
[INFO] [stdout]    --> src/save_load/resources.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct SaveGameEvent {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 138 |     pub slot: u32,
[INFO] [stdout] 139 |     pub save_name: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_update` is never read
[INFO] [stdout]    --> src/save_load/resources.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub struct PlaytimeTracker {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 144 |     pub total_seconds: f64,
[INFO] [stdout] 145 |     last_update: Option<f64>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlaytimeTracker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot`, `success`, and `error_message` are never read
[INFO] [stdout]    --> src/save_load/resources.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SaveCompleteEvent {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 165 |     pub slot: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 166 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 167 |     pub error_message: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot`, `success`, and `error_message` are never read
[INFO] [stdout]    --> src/save_load/resources.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct LoadCompleteEvent {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 172 |     pub slot: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 173 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 174 |     pub error_message: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slot` is never read
[INFO] [stdout]   --> src/menu/components.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SaveSlotCard {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 29 |     pub slot: u32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsSlider` is never constructed
[INFO] [stdout]   --> src/menu/components.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct SettingsSlider {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VSync`, `Fullscreen`, `Resolution`, and `GraphicsQuality` are never constructed
[INFO] [stdout]   --> src/menu/components.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum GraphicsSettingType {
[INFO] [stdout]    |          ------------------- variants in this enum
[INFO] [stdout] 77 |     VSync,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 78 |     Fullscreen,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 79 |     Resolution,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 80 |     GraphicsQuality,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GraphicsSettingType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action` is never read
[INFO] [stdout]   --> src/menu/components.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct KeybindingButton {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 85 |     pub action: crate::keybindings::GameAction,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action` is never read
[INFO] [stdout]   --> src/menu/components.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct KeybindingText {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 90 |     pub action: crate::keybindings::GameAction,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeybindingWaiting` is never constructed
[INFO] [stdout]   --> src/menu/components.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct KeybindingWaiting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `resolution_to_string` and `find_resolution_index` are never used
[INFO] [stdout]    --> src/menu/resources.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl GameSettings {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn resolution_to_string(resolution: (u32, u32)) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn find_resolution_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialDialog` is never constructed
[INFO] [stdout]  --> src/tutorial/components.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TutorialDialog;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialPointer` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TutorialPointer;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialSkipButton` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TutorialSkipButton;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialNextButton` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TutorialNextButton;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialTarget` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TutorialTarget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input_hint` is never used
[INFO] [stdout]   --> src/tutorial/components.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl TutorialStep {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn input_hint(&self) -> Option<&'static str> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_step_completed` is never used
[INFO] [stdout]   --> src/tutorial/resources.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl TutorialProgress {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn is_step_completed(&self, step: TutorialStep) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tutorial_ui_update_system` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn tutorial_ui_update_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tutorial_button_system` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn tutorial_button_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_tutorial_ui` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn spawn_tutorial_ui(commands: &mut Commands) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UIColors` is never constructed
[INFO] [stdout]  --> src/ui_widgets.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct UIColors;
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/ui_widgets.rs:8:15
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl UIColors {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout]  8 |     pub const BACKGROUND: Color = Color::srgb(0.9, 0.9, 0.9);
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout]  9 |     pub const BACKGROUND_HOVER: Color = Color::srgb(0.8, 0.8, 0.8);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub const BACKGROUND_PRESSED: Color = Color::srgb(0.7, 0.7, 0.7);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub const TEXT_PRIMARY: Color = Color::srgb(0.3, 0.2, 0.1);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub const TEXT_SECONDARY: Color = Color::srgb(0.5, 0.3, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub const ACCENT_ON: Color = Color::srgb(0.2, 0.6, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 14 |     pub const ACCENT_OFF: Color = Color::srgb(0.6, 0.2, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderWidget` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SliderWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderTrack` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SliderTrack;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderHandle` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SliderHandle;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderValueText` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SliderValueText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderValueChanged` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct SliderValueChanged {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_step`, `without_percentage`, `get_percentage`, and `set_from_percentage` are never used
[INFO] [stdout]   --> src/ui_widgets.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SliderWidget {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new(min: f32, max: f32, initial: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn with_step(mut self, step: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn without_percentage(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn get_percentage(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn set_from_percentage(&mut self, percentage: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slider_interaction_system` is never used
[INFO] [stdout]   --> src/ui_widgets.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn slider_interaction_system(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ui_widgets.rs:196:27
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct CursorPosition(pub Option<Vec2>);
[INFO] [stdout]     |            -------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_cursor_position` is never used
[INFO] [stdout]    --> src/ui_widgets.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn update_cursor_position(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownWidget` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub struct DropdownWidget<T: Send + Sync + Clone + 'static> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `select`, and `toggle_open` are never used
[INFO] [stdout]    --> src/ui_widgets.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl<T: Send + Sync + Clone + 'static> DropdownWidget<T> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 217 |     pub fn new(options: Vec<T>, selected_index: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn selected(&self) -> Option<&T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn select(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn toggle_open(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownButton` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub struct DropdownButton;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownOptions` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct DropdownOptions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownOption` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub struct DropdownOption {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownValueChanged` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct DropdownValueChanged<T: Send + Sync + Clone + 'static> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToggleButtonChanged` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct ToggleButtonChanged {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropdownButtonRef` is never constructed
[INFO] [stdout]    --> src/ui_widgets.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub struct DropdownButtonRef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dropdown_button_system` is never used
[INFO] [stdout]    --> src/ui_widgets.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub fn dropdown_button_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dropdown_option_system` is never used
[INFO] [stdout]    --> src/ui_widgets.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn dropdown_option_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_button_system` is never used
[INFO] [stdout]    --> src/ui_widgets.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn toggle_button_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dropdown_visibility_system` is never used
[INFO] [stdout]    --> src/ui_widgets.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn dropdown_visibility_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_delay` is never read
[INFO] [stdout]   --> src/tooltip.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TooltipState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub show_delay: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tooltip.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl TooltipState {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 27 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tooltip` is never constructed
[INFO] [stdout]   --> src/tooltip.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Tooltip {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save_to_file`, `add_binding`, `remove_binding`, and `clear_action_bindings` are never used
[INFO] [stdout]    --> src/keybindings.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl KeyBindings {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn save_to_file(&self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn add_binding(&mut self, action: GameAction, binding: InputBinding) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn remove_binding(&mut self, action: GameAction, binding: &InputBinding) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn clear_action_bindings(&mut self, action: GameAction) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lunex_button` is never used
[INFO] [stdout]   --> src/lunex_ui.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn create_lunex_button(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lunex_text_label` is never used
[INFO] [stdout]   --> src/lunex_ui.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn create_lunex_text_label(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationPriority` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct MigrationPriority {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MigrationComplexity` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum MigrationComplexity {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `simple`, `medium`, and `complex` are never used
[INFO] [stdout]    --> src/lunex_ui.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl MigrationPriority {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] 129 |     pub fn simple(priority: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn medium(priority: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn complex(priority: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action` is never read
[INFO] [stdout]    --> src/lunex_ui.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub struct LunexTutorialButton {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] 271 |     pub action: LunexTutorialAction,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JournalContentText` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:442:12
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub struct JournalContentText; // Marker for journal content text that updates with tabs
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LunexJournalTab` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:445:12
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub struct LunexJournalTab {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LunexJournalContent` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 | pub struct LunexJournalContent;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LunexJournalClose` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub struct LunexJournalClose;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_lunex_journal` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn setup_lunex_journal(mut commands: Commands) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_lunex_journal` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:576:8
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub fn cleanup_lunex_journal(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lunex_journal_navigation` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:607:8
[INFO] [stdout]     |
[INFO] [stdout] 607 | pub fn handle_lunex_journal_navigation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_lunex_journal_content` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:632:8
[INFO] [stdout]     |
[INFO] [stdout] 632 | pub fn update_lunex_journal_content(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LunexCatalogContent` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 675 | pub struct LunexCatalogContent;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LunexCatalogVisible` is never constructed
[INFO] [stdout]    --> src/lunex_ui.rs:678:12
[INFO] [stdout]     |
[INFO] [stdout] 678 | pub struct LunexCatalogVisible(pub bool);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_lunex_catalog_ui` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:681:8
[INFO] [stdout]     |
[INFO] [stdout] 681 | pub fn setup_lunex_catalog_ui(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lunex_catalog_input` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 842 | pub fn handle_lunex_catalog_input(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_lunex_catalog_content` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:854:8
[INFO] [stdout]     |
[INFO] [stdout] 854 | pub fn update_lunex_catalog_content(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_lunex_catalog` is never used
[INFO] [stdout]    --> src/lunex_ui.rs:884:8
[INFO] [stdout]     |
[INFO] [stdout] 884 | pub fn setup_test_lunex_catalog(mut commands: Commands) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_lunex_journal_simple` is never used
[INFO] [stdout]     --> src/lunex_ui.rs:1294:8
[INFO] [stdout]      |
[INFO] [stdout] 1294 | pub fn setup_lunex_journal_simple(mut commands: Commands) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_journal_entities` is never used
[INFO] [stdout]     --> src/lunex_ui.rs:1380:8
[INFO] [stdout]      |
[INFO] [stdout] 1380 | pub fn debug_journal_entities(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lunex_journal_navigation_simple` is never used
[INFO] [stdout]     --> src/lunex_ui.rs:1394:8
[INFO] [stdout]      |
[INFO] [stdout] 1394 | pub fn handle_lunex_journal_navigation_simple(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_bevy_journal_content` is never used
[INFO] [stdout]     --> src/lunex_ui.rs:1418:8
[INFO] [stdout]      |
[INFO] [stdout] 1418 | pub fn update_bevy_journal_content(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBar` is never constructed
[INFO] [stdout]   --> src/loading_screen.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct ProgressBar;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBarFill` is never constructed
[INFO] [stdout]   --> src/loading_screen.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct ProgressBarFill;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cathemeral` is never constructed
[INFO] [stdout]   --> src/nocturnal_behaviors.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ActivityPattern {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Cathemeral,     // Active both day and night
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActivityPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ground` and `CliffLedge` are never constructed
[INFO] [stdout]   --> src/nocturnal_behaviors.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum RoostType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     Ground,            // Some game birds
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     CliffLedge,        // Raptors
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoostType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `traits` is never read
[INFO] [stdout]   --> src/nocturnal_behaviors.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct NocturnalBehavior {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 70 |     pub traits: NocturnalTraits,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `center` is never read
[INFO] [stdout]   --> src/nocturnal_behaviors.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct HuntingTerritory {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 89 |     pub center: Vec3,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bird_entity` is never read
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct RoostEvent {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 107 |     pub bird_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SiteSelection` and `Disturbance` are never constructed
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum RoostEventType {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 116 |     SiteSelection,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 117 |     Disturbance,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RoostEventType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hunter`, `territory`, `success`, and `prey_type` are never read
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct HuntingEvent {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 122 |     pub hunter: Entity,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 123 |     pub territory: Entity,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 124 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 125 |     pub prey_type: PreyType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bird`, `Insect`, `Fish`, and `Reptile` are never constructed
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum PreyType {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 130 |     SmallMammal,
[INFO] [stdout] 131 |     Bird,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 132 |     Insect,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 133 |     Fish,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 134 |     Reptile,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PreyType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bird_entity`, `migration_type`, `direction`, and `distance` are never read
[INFO] [stdout]    --> src/nocturnal_behaviors.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct MigrationEvent {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 139 |     pub bird_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 140 |     pub migration_type: MigrationPattern,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 141 |     pub direction: Vec3,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 142 |     pub distance: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Extreme` is never constructed
[INFO] [stdout]   --> src/advanced_weather.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum StormSeverity {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 39 |     Extreme,    // Hurricane/blizzard conditions
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StormSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `celsius` and `activity_modifier` are never read
[INFO] [stdout]   --> src/advanced_weather.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct TemperatureRange {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 65 |     pub celsius: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub activity_modifier: f32, // Effect on general activity
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TemperatureRange` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_weather` and `flight_speed_modifier` are never used
[INFO] [stdout]    --> src/advanced_weather.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl WindEffects {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 146 |     pub fn from_weather(weather: Weather, base_speed: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn flight_speed_modifier(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `shelter_type`, `protection_level`, and `wind_resistance` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub struct WeatherShelter {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 173 |     pub shelter_type: ShelterType,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub protection_level: f32, // 0.0-1.0, how much protection it offers
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |     pub wind_resistance: f32,  // How well it blocks wind
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `leader`, `members`, `formation_time`, `shelter_target`, and `urgency_level` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct EmergencyFlock {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 191 |     pub leader: Entity,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 192 |     pub members: Vec<Entity>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 193 |     pub formation_time: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     pub shelter_target: Option<Entity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 195 |     pub urgency_level: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WindResistance` is never constructed
[INFO] [stdout]    --> src/advanced_weather.rs:199:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub struct WindResistance {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_temp` is never read
[INFO] [stdout]    --> src/advanced_weather.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct TemperatureManager {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 217 |     pub current_temp: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gust_timer` and `base_wind_speed` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub struct WindManager {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 234 |     pub current_effects: WindEffects,
[INFO] [stdout] 235 |     pub gust_timer: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 236 |     pub base_wind_speed: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `severity`, `duration`, and `warning_time` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct StormEvent {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 242 |     pub severity: StormSeverity,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 243 |     pub duration: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 244 |     pub warning_time: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bird_entities`, `leader`, and `urgency` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct EmergencyFlockingEvent {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 249 |     pub bird_entities: Vec<Entity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 250 |     pub leader: Entity,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 251 |     pub urgency: f32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bird`, `temperature`, and `stress_level` are never read
[INFO] [stdout]    --> src/advanced_weather.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub struct TemperatureStressEvent {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 256 |     pub bird: Entity,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 257 |     pub temperature: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 258 |     pub stress_level: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `activity_pattern` is never read
[INFO] [stdout]   --> src/foraging_ecology.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct InsectColony {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub activity_pattern: InsectActivityPattern,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `flock_type` and `foraging_efficiency` are never read
[INFO] [stdout]   --> src/foraging_ecology.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct MixedForagingFlock {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub flock_type: FlockType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub foraging_efficiency: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `leadership_strength`, `experience`, and `territory_knowledge` are never read
[INFO] [stdout]   --> src/foraging_ecology.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct FlockLeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 80 |     pub leadership_strength: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     pub experience: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 82 |     pub territory_knowledge: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_leader` is never read
[INFO] [stdout]   --> src/foraging_ecology.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct FlockFollower {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 88 |     pub following_tendency: f32,
[INFO] [stdout] 89 |     pub current_leader: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Weekly` is never constructed
[INFO] [stdout]    --> src/foraging_ecology.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub enum EmergenceCycle {
[INFO] [stdout]     |          -------------- variant in this enum
[INFO] [stdout] 106 |     Daily,         // Emerge every day at specific times
[INFO] [stdout] 107 |     Weekly,        // Weekly cycles
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EmergenceCycle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Night` is never constructed
[INFO] [stdout]    --> src/foraging_ecology.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum InsectActivityPattern {
[INFO] [stdout]     |          --------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 119 |     Night,         // Nocturnal insects
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InsectActivityPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EarlySpring` and `Winter` are never constructed
[INFO] [stdout]    --> src/foraging_ecology.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum SeasonalFruit {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 142 |     EarlySpring,   // March-April
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     Winter,        // December-February (limited)
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SeasonalFruit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Roadkill` is never constructed
[INFO] [stdout]    --> src/foraging_ecology.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub enum OpportunisticFoodType {
[INFO] [stdout]     |          --------------------- variant in this enum
[INFO] [stdout] 152 |     SpilledSeed,   // Spilled from feeders
[INFO] [stdout] 153 |     Roadkill,      // Scavenging opportunity
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OpportunisticFoodType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FeedingFlock`, `SafetyFlock`, `LeaderFollower`, and `Opportunistic` are never constructed
[INFO] [stdout]    --> src/foraging_ecology.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub enum FlockType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 162 |     MixedSpecies,     // Multiple species foraging together
[INFO] [stdout] 163 |     FeedingFlock,     // Focused on feeding
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 164 |     SafetyFlock,      // Safety in numbers while foraging
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 165 |     LeaderFollower,   // Experienced bird leading others
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     Opportunistic,    // Formed around rare food source
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FlockType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `emergence_schedule` and `weather_effects` are never read
[INFO] [stdout]    --> src/foraging_ecology.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct InsectManager {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 172 |     pub colonies: Vec<Entity>,
[INFO] [stdout] 173 |     pub emergence_schedule: HashMap<InsectType, f32>, // Next emergence time
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 |     pub weather_effects: HashMap<Weather, f32>,       // Weather impact on insects
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ripening_schedule`, `seasonal_availability`, and `weather_ripening_effects` are never read
[INFO] [stdout]    --> src/foraging_ecology.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct FruitManager {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 180 |     pub fruit_trees: Vec<Entity>,
[INFO] [stdout] 181 |     pub ripening_schedule: HashMap<FruitType, f32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 |     pub seasonal_availability: HashMap<Season, Vec<FruitType>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 183 |     pub weather_ripening_effects: HashMap<Weather, f32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `leadership_hierarchy` is never read
[INFO] [stdout]    --> src/foraging_ecology.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct ForagingFlockManager {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub leadership_hierarchy: HashMap<BirdSpecies, f32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spawn_probability` is never read
[INFO] [stdout]    --> src/foraging_ecology.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct OpportunisticFoodManager {
[INFO] [stdout]     |            ------------------------ field in this struct
[INFO] [stdout] 196 |     pub active_opportunities: Vec<Entity>,
[INFO] [stdout] 197 |     pub spawn_probability: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `population_size` and `duration` are never read
[INFO] [stdout]    --> src/foraging_ecology.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct InsectEmergenceEvent {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub population_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 207 |     pub duration: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `availability` is never read
[INFO] [stdout]    --> src/foraging_ecology.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct FruitRipeningEvent {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub availability: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `leader`, `members`, and `flock_type` are never read
[INFO] [stdout]    --> src/foraging_ecology.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct MixedFlockFormationEvent {
[INFO] [stdout]     |            ------------------------ fields in this struct
[INFO] [stdout] 220 |     pub leader: Entity,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 221 |     pub members: Vec<Entity>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 222 |     pub flock_type: FlockType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `food_entity`, `food_type`, `location`, and `discovery_bird` are never read
[INFO] [stdout]    --> src/foraging_ecology.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct OpportunisticFoodEvent {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 227 |     pub food_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 228 |     pub food_type: OpportunisticFoodType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 229 |     pub location: Vec3,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 230 |     pub discovery_bird: Option<Entity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `base_reward` is never used
[INFO] [stdout]   --> src/social_features/components.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ChallengeDifficulty {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] 67 |     pub fn base_reward(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `challenge_id` and `photo_score` are never read
[INFO] [stdout]    --> src/social_features/components.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct ChallengeCompletedEvent {
[INFO] [stdout]     |            ----------------------- fields in this struct
[INFO] [stdout] 196 |     pub challenge_id: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 197 |     pub photo_score: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `photo` is never read
[INFO] [stdout]    --> src/social_features/components.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct PhotoSharedEvent {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 202 |     pub photo: SharedPhoto,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `generate_daily_challenges` is never used
[INFO] [stdout]    --> src/social_features/components.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Challenge {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 228 |     pub fn generate_daily_challenges() -> Vec<Challenge> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `challenge_id` is never read
[INFO] [stdout]    --> src/social_features/systems.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct ChallengeCard {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 236 |     pub challenge_id: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timer` is never read
[INFO] [stdout]    --> src/social_features/systems.rs:624:9
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub struct BadgeNotification {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 624 |     pub timer: Timer,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_streak_bonus` is never used
[INFO] [stdout]    --> src/social_features/systems.rs:991:4
[INFO] [stdout]     |
[INFO] [stdout] 991 | fn calculate_streak_bonus(streak: u32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cost`, `maintenance_needs`, and `name` are never used
[INFO] [stdout]   --> src/sanctuary_management.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl ShelterType {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 10 |     pub fn cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn maintenance_needs(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `box_type`, `success_rate`, `maintenance_required`, `eggs_laid`, and `fledglings_raised` are never read
[INFO] [stdout]   --> src/sanctuary_management.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct NestingBox {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 44 |     pub box_type: NestingBoxType,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub success_rate: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub maintenance_required: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub maintenance_level: f32,
[INFO] [stdout] 51 |     pub eggs_laid: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 52 |     pub fledglings_raised: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NestingBox` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MediumCavity`, `LargeCavity`, `OpenPlatform`, and `SpecializedBox` are never constructed
[INFO] [stdout]   --> src/sanctuary_management.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum NestingBoxType {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 57 |     SmallCavity,      // Chickadees, Wrens
[INFO] [stdout] 58 |     MediumCavity,     // Bluebirds, Swallows
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 59 |     LargeCavity,      // Woodpeckers
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 60 |     OpenPlatform,     // Robins, Cardinals
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 61 |     SpecializedBox,   // Species-specific designs
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NestingBoxType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `suitable_species` and `cost` are never used
[INFO] [stdout]   --> src/sanctuary_management.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl NestingBoxType {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 65 |     pub fn suitable_species(&self) -> Vec<BirdSpecies> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EggsLaid`, `Incubating`, `Hatched`, `Fledged`, and `Abandoned` are never constructed
[INFO] [stdout]   --> src/sanctuary_management.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub enum NestingStatus {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 90 |     EggsLaid(u32),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 91 |     Incubating,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 92 |     Hatched(u32), // Number of chicks
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 93 |     Fledged,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 94 |     Abandoned,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NestingStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredatorManagement` is never constructed
[INFO] [stdout]   --> src/sanctuary_management.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct PredatorManagement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MotionActivatedSprinkler`, `UltrasonicDevice`, `ScareOwl`, `ProtectiveMesh`, and `NaturalBarrier` are never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum DeterrentType {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 117 |     MotionActivatedSprinkler, // General deterrent
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     UltrasonicDevice,        // Cats, small predators
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 |     ReflectiveTape,          // Birds of prey
[INFO] [stdout] 120 |     ScareOwl,               // Small mammals
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 121 |     ProtectiveMesh,         // Physical barrier
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 122 |     NaturalBarrier,         // Thorny bushes, etc.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeterrentType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `effectiveness_against`, `cost`, and `maintenance_interval` are never used
[INFO] [stdout]    --> src/sanctuary_management.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl DeterrentType {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 126 |     pub fn effectiveness_against(&self, predator: PredatorType) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn cost(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn maintenance_interval(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Cat`, `Hawk`, `Snake`, `Rodent`, and `Other` are never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub enum PredatorType {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 163 |     Cat,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 164 |     Hawk,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 165 |     Snake,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 166 |     Rodent,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 167 |     Other,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PredatorType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredatorActivity` is never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct PredatorActivity {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredatorSighting` is never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct PredatorSighting {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ThreatLevel` is never used
[INFO] [stdout]    --> src/sanctuary_management.rs:187:10
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub enum ThreatLevel {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtectionZone` is never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtectionZone {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HabitatEnhancement` is never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct HabitatEnhancement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EnhancementType` is never used
[INFO] [stdout]    --> src/sanctuary_management.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub enum EnhancementType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `attracted_species` and `cost` are never used
[INFO] [stdout]    --> src/sanctuary_management.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl EnhancementType {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 225 |     pub fn attracted_species(&self) -> Vec<(BirdSpecies, f32)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn cost(&self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `predator_type` and `location` are never read
[INFO] [stdout]    --> src/sanctuary_management.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct PredatorSpottedEvent {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 279 |     pub predator_type: PredatorType,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 280 |     pub location: Vec3,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `box_id`, `species`, and `event_type` are never read
[INFO] [stdout]    --> src/sanctuary_management.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct NestingEvent {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 285 |     pub box_id: Entity,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 286 |     pub species: BirdSpecies,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 287 |     pub event_type: NestingEventType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EggsLaid`, `ChicksHatched`, `Fledglings`, and `NestAbandoned` are never constructed
[INFO] [stdout]    --> src/sanctuary_management.rs:292:5
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub enum NestingEventType {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] 292 |     EggsLaid(u32),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 293 |     ChicksHatched(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 294 |     Fledglings(u32),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 295 |     NestAbandoned,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NestingEventType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `shelter_id` and `occupancy_change` are never read
[INFO] [stdout]    --> src/sanctuary_management.rs:300:9
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct ShelterOccupancyEvent {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 300 |     pub shelter_id: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 301 |     pub occupancy_change: i32, // +1 for entry, -1 for exit
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/hanabi_effects.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum ParticleEffectType {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 49 |     // Weather
[INFO] [stdout] 50 |     Rain,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 51 |     Snow,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 52 |     Wind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 53 |     // Interactive
[INFO] [stdout] 54 |     WaterSplash,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 55 |     SeedScatter,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 56 |     Dust,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 57 |     // Seasonal
[INFO] [stdout] 58 |     Pollen,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 59 |     FallingLeaves,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParticleEffectType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active_predators` and `threat_level` are never read
[INFO] [stdout]   --> src/predator_prey.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PredatorManager {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 29 |     pub active_predators: Vec<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub attack_cooldown: Timer,
[INFO] [stdout] 31 |     pub threat_level: f32, // 0.0-1.0, affects all birds
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hunting_style` is never read
[INFO] [stdout]   --> src/predator_prey.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Predator {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 37 |     pub hunting_style: HuntingStyle,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fear_recovery_time` and `group_safety_bonus` are never read
[INFO] [stdout]   --> src/predator_prey.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct PreyResponse {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fear_recovery_time: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub group_safety_bonus: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Freeze` is never constructed
[INFO] [stdout]   --> src/predator_prey.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub enum EscapeBehavior {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 65 |     Scatter,      // Individual birds flee in all directions
[INFO] [stdout] 66 |     Freeze,       // Stay motionless to avoid detection
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EscapeBehavior` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `predator` and `success` are never read
[INFO] [stdout]   --> src/predator_prey.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct PredatorAttackEvent {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 74 |     pub predator: Entity,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub success: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `memory_usage` and `error_events` are never read
[INFO] [stdout]   --> src/automated_testing.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct TestMetrics {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 54 |     pub frame_rates: Vec<f32>,
[INFO] [stdout] 55 |     pub memory_usage: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub bird_populations: HashMap<crate::bird::BirdSpecies, Vec<u32>>,
[INFO] [stdout] 57 |     pub error_events: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `setup_actions` is never read
[INFO] [stdout]   --> src/automated_testing.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct TestScenario {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub setup_actions: Vec<TestAction>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestScenario` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/automated_testing.rs:73:23
[INFO] [stdout]    |
[INFO] [stdout] 73 |     SetTimeMultiplier(f32),
[INFO] [stdout]    |     ----------------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     SetTimeMultiplier(f32),
[INFO] [stdout] 73 +     SetTimeMultiplier(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species` and `count` are never read
[INFO] [stdout]   --> src/automated_testing.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 |     SpawnBirds { species: crate::bird::BirdSpecies, count: u32 },
[INFO] [stdout]    |     ----------   ^^^^^^^                            ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/automated_testing.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |     WaitMinutes(f32),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     WaitMinutes(f32),
[INFO] [stdout] 75 +     WaitMinutes(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/automated_testing.rs:77:16
[INFO] [stdout]    |
[INFO] [stdout] 77 |     LogMessage(String),
[INFO] [stdout]    |     ---------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 77 -     LogMessage(String),
[INFO] [stdout] 77 +     LogMessage(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SetWeather` is never constructed
[INFO] [stdout]   --> src/automated_testing.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub enum TestAction {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     SetWeather(String), // Placeholder for weather type
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min` and `max` are never read
[INFO] [stdout]   --> src/automated_testing.rs:82:58
[INFO] [stdout]    |
[INFO] [stdout] 82 |     PopulationCount { species: crate::bird::BirdSpecies, min: u32, max: u32 },
[INFO] [stdout]    |     --------------- fields in this variant               ^^^       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestCheck` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `test_name`, `passed`, `duration`, `errors`, and `metrics` are never read
[INFO] [stdout]   --> src/automated_testing.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct TestResult {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 89 |     pub test_name: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 90 |     pub passed: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 91 |     pub duration: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 92 |     pub errors: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 93 |     pub metrics: TestMetrics,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CollectMetrics` is never constructed
[INFO] [stdout]    --> src/automated_testing.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum TestEvent {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 102 |     CollectMetrics,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/debug_console.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct ConsoleMessage {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub timestamp: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConsoleMessage` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `power_consumption` is never read
[INFO] [stdout]   --> src/garden_lighting.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct GardenLamp {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub power_consumption: f32,   // Not used yet but for future features
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `insect_attraction_radius` and `attracted_insects` are never read
[INFO] [stdout]   --> src/garden_lighting.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct LightSource {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub insect_attraction_radius: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub attracted_insects: Vec<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `insect_type`, `attracted_to_light`, and `attraction_strength` are never read
[INFO] [stdout]   --> src/garden_lighting.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct NocturnalInsect {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 61 |     pub insect_type: InsectType,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 62 |     pub attracted_to_light: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     pub attraction_strength: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active_lights` and `total_light_power` are never read
[INFO] [stdout]    --> src/garden_lighting.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct LightingManager {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 104 |     pub ambient_light_level: f32,     // Global ambient light (0.0 = full dark, 1.0 = full day)
[INFO] [stdout] 105 |     pub active_lights: Vec<Entity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 106 |     pub total_light_power: f32,       // For performance monitoring
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `_BeltedKingfisher` should have a snake case name
[INFO] [stdout]     --> src/bird.rs:1098:9
[INFO] [stdout]      |
[INFO] [stdout] 1098 |         _BeltedKingfisher => SearchPattern::Linear,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `_belted_kingfisher`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/social_features/systems.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     mut close_interaction_query: Query<
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leaderboard_type`
[INFO] [stdout]    --> src/social_features/systems.rs:489:51
[INFO] [stdout]     |
[INFO] [stdout] 489 |         .find(|lb| matches!(&lb.leaderboard_type, leaderboard_type)) {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leaderboard_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:835:49
[INFO] [stdout]     |
[INFO] [stdout] 835 | fn generate_species_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:875:50
[INFO] [stdout]     |
[INFO] [stdout] 875 | fn generate_behavior_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:925:53
[INFO] [stdout]     |
[INFO] [stdout] 925 | fn generate_progression_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_stats`
[INFO] [stdout]    --> src/social_features/systems.rs:958:53
[INFO] [stdout]     |
[INFO] [stdout] 958 | fn generate_exploration_challenge(rng: &mut StdRng, player_stats: &PlayerStats, current_day: u64) -> Challenge {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elapsed_seconds`
[INFO] [stdout]     --> src/social_features/systems.rs:1006:60
[INFO] [stdout]      |
[INFO] [stdout] 1006 | fn update_challenge_progress(challenges: &mut [Challenge], elapsed_seconds: f64) {
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed_seconds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sanctuary_management.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut predator_events: EventWriter<PredatorSpottedEvent>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predator_events`
[INFO] [stdout]    --> src/sanctuary_management.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut predator_events: EventWriter<PredatorSpottedEvent>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predator_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/sanctuary_management.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     time: Res<Time>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hanabi_effects.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     mut query: Query<Entity, With<ParticleEffect>>,
[INFO] [stdout]     |     ----^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/predator_prey.rs:172:41
[INFO] [stdout]     |
[INFO] [stdout] 172 |     for (predator_entity, mut predator, mut predator_transform, predator_bird) in predator_query.iter_mut() {
[INFO] [stdout]     |                                         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predator_entity`
[INFO] [stdout]    --> src/predator_prey.rs:318:10
[INFO] [stdout]     |
[INFO] [stdout] 318 |     for (predator_entity, predator_transform, _predator_bird) in predator_query.iter() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predator_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]   --> src/bird_selection.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let Ok((camera, camera_transform)) = camera_query.single() else { return };
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/automated_testing.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/automated_testing.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_server`
[INFO] [stdout]    --> src/automated_testing.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     asset_server: Res<AssetServer>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/debug_console.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/debug_console.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `species`
[INFO] [stdout]    --> src/debug_console.rs:440:33
[INFO] [stdout]     |
[INFO] [stdout] 440 |                     if let Some(species) = species {
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_species`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     .and_then(|mut entity_commands| {
[INFO] [stdout]     |                                ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 196 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:264:27
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 if let Ok(mut point_light) = commands.get_entity(light_entity)
[INFO] [stdout]     |                           ----^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity_commands`
[INFO] [stdout]    --> src/garden_lighting.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |                     .and_then(|mut entity_commands| {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lighting_manager`
[INFO] [stdout]    --> src/garden_lighting.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 196 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lighting_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/garden_lighting.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 |     for (entity, mut solar_light, mut light_source, transform) in solar_light_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point_light`
[INFO] [stdout]    --> src/garden_lighting.rs:264:27
[INFO] [stdout]     |
[INFO] [stdout] 264 |                 if let Ok(mut point_light) = commands.get_entity(light_entity)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_point_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/garden_lighting.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lighting_manager`
[INFO] [stdout]    --> src/garden_lighting.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     mut lighting_manager: ResMut<LightingManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lighting_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/garden_lighting.rs:325:10
[INFO] [stdout]     |
[INFO] [stdout] 325 |     for (entity, mut garden_lamp, mut light_source, transform) in garden_lamp_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insect_entity`
[INFO] [stdout]    --> src/garden_lighting.rs:412:10
[INFO] [stdout]     |
[INFO] [stdout] 412 |     for (insect_entity, mut insect_transform, mut insect) in insect_query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insect_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_probability` and `color` are never used
[INFO] [stdout]    --> src/bird.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl BirdSpecies {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn spawn_probability(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn color(&self) -> Color {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attraction_radius` is never read
[INFO] [stdout]   --> src/feeder.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Feeder {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 23 |     pub feeder_type: FeederType,
[INFO] [stdout] 24 |     pub attraction_radius: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species`, `position`, and `dominance_level` are never read
[INFO] [stdout]   --> src/bird_ai/components.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SocialBirdInfo {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 40 |     pub entity: Entity,
[INFO] [stdout] 41 |     pub species: crate::bird::BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 42 |     pub position: Vec2,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub dominance_level: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SocialBirdInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mate`, `rivals`, `flock_members`, `courtship_targets`, `territory_center`, and `territory_radius` are never read
[INFO] [stdout]    --> src/bird_ai/components.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct SocialRelationships {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 117 |     pub mate: Option<Entity>,              // Current mate if paired
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 118 |     pub rivals: Vec<Entity>,               // Territorial rivals
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 119 |     pub flock_members: Vec<Entity>,        // Current flock companions
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub courtship_targets: Vec<Entity>,    // Birds being courted
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     pub territory_center: Option<Vec2>,    // Center of claimed territory
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |     pub territory_radius: f32,             // Size of claimed territory
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ground_preference` is never read
[INFO] [stdout]    --> src/bird_ai/components.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct ForagingTraits {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 128 |     pub foraging_style: ForagingStyle,
[INFO] [stdout] 129 |     pub ground_preference: f32,    // 0.0 = never on ground, 1.0 = primarily ground feeder
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `retrieval_memory` is never read
[INFO] [stdout]    --> src/bird_ai/components.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub struct CacheData {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 155 |     pub cached_locations: Vec<CacheSpot>,
[INFO] [stdout] 156 |     pub retrieval_memory: f32,     // How well bird remembers cache locations
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]  --> src/bird_ai/bt.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Rule {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load_from_asset` is never used
[INFO] [stdout]   --> src/bird_ai/config.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl BehaviorTreeConfig {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 70 |     pub fn load_from_asset(asset_server: &AssetServer) -> Handle<BehaviorTreeConfig> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rule_of_thirds`, `center_guides`, and `golden_ratio` are never read
[INFO] [stdout]   --> src/photo_mode/components.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct CompositionGrid {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 12 |     pub rule_of_thirds: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub center_guides: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub golden_ratio: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DepthOfFieldPreview` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct DepthOfFieldPreview {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExposureSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ExposureSlider;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApertureSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ApertureSlider;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ISOSlider` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ISOSlider;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompositionAnalysis` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct CompositionAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LightingAnalysis` is never constructed
[INFO] [stdout]   --> src/photo_mode/components.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct LightingAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_depth_preview` is never read
[INFO] [stdout]   --> src/photo_mode/resources.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct PhotoModeSettings {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub show_depth_preview: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discovered` is never used
[INFO] [stdout]   --> src/photo_mode/resources.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl DiscoveredSpecies {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_discovered(&self, species: &BirdSpecies) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_handle` is never read
[INFO] [stdout]   --> src/photo_mode/resources.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct SavedPhoto {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub image_handle: Handle<Image>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SavedPhoto` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_species_photos` is never used
[INFO] [stdout]   --> src/photo_mode/resources.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl PhotoCollection {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_species_photos(&self, species: BirdSpecies) -> Vec<&SavedPhoto> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_photo_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn calculate_photo_score(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_species_rarity_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn get_species_rarity_score(species: BirdSpecies) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_bird_species_score` is never used
[INFO] [stdout]    --> src/photo_mode/systems.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn match_bird_species_score(species: crate::bird::BirdSpecies) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LensType` is never used
[INFO] [stdout]  --> src/photo_mode/advanced_photo.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum LensType {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `zoom_range`, `field_of_view`, `name`, and `unlock_cost` are never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LensType {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn zoom_range(&self) -> (f32, f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn field_of_view(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn unlock_cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PhotoFilter` is never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum PhotoFilter {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `unlock_cost`, and `apply_color_adjustment` are never used
[INFO] [stdout]   --> src/photo_mode/advanced_photo.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl PhotoFilter {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 65 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn unlock_cost(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn apply_color_adjustment(&self, base_color: Color) -> Color {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdvancedCameraSettings` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct AdvancedCameraSettings {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FocusMode` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub enum FocusMode {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MeteringMode` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:169:10
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub enum MeteringMode {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WhiteBalance` is never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:176:10
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub enum WhiteBalance {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompositionGuides` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct CompositionGuides {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoCollection` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct PhotoCollection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SavedPhoto` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct SavedPhoto {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoAlbum` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct PhotoAlbum {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoMetadata` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct PhotoMetadata {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_lens_bonus`, `calculate_filter_bonus`, and `calculate_advanced_total` are never used
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl PhotoScore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 250 |     pub fn calculate_lens_bonus(&self, lens: LensType, species: Option<BirdSpecies>) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn calculate_filter_bonus(&self, filter: PhotoFilter) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn calculate_advanced_total(&self, lens: LensType, filter: PhotoFilter, species: Option<BirdSpecies>) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LensSwitchEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub struct LensSwitchEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterChangeEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct FilterChangeEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PhotoSavedEvent` is never constructed
[INFO] [stdout]    --> src/photo_mode/advanced_photo.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct PhotoSavedEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tab` is never read
[INFO] [stdout]   --> src/journal/components.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct JournalTabContent {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 15 |     pub tab: JournalTab,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpeciesButton` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SpeciesButton(pub BirdSpecies);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetailPanel` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct DetailPanel;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabIndicator` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct TabIndicator;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldNotePage` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FieldNotePage;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationMap` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MigrationMap;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mission_id` is never read
[INFO] [stdout]   --> src/journal/components.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ResearchMissionCard {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 59 |     pub mission_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResearchDataVisualization` is never constructed
[INFO] [stdout]   --> src/journal/components.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct ResearchDataVisualization;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/journal/components.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct PhotoCard {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 70 |     pub timestamp: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `achievement` is never read
[INFO] [stdout]   --> src/journal/components.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AchievementCard {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 75 |     pub achievement: crate::achievements::Achievement,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `collected_data` is never read
[INFO] [stdout]    --> src/journal/resources.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct ResearchMissionManager {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub collected_data: HashMap<DataType, u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration_days` and `research_points` are never used
[INFO] [stdout]    --> src/journal/resources.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl MissionDifficulty {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 204 |     pub fn duration_days(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn research_points(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_species_button` is never used
[INFO] [stdout]  --> src/journal/ui_builder.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn ui_species_button(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `species_color` is never used
[INFO] [stdout]   --> src/journal/ui_builder.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn species_color(species: BirdSpecies) -> Color {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_text` is never used
[INFO] [stdout]  --> src/user_interface/builder.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ui_text(
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_button` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn ui_button(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_icon` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn ui_icon(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_panel` is never used
[INFO] [stdout]   --> src/user_interface/builder.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn ui_panel(
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `normal_color`, `hovered_color`, `pressed_color`, and `border_color` are never read
[INFO] [stdout]   --> src/user_interface/styles.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct ButtonStyle {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  6 |     pub width: Val,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  7 |     pub height: Val,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  8 |     pub normal_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  9 |     pub hovered_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub pressed_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub border_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `background_color` and `border_color` are never read
[INFO] [stdout]   --> src/user_interface/styles.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PanelStyle {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 29 |     pub background_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub border_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_value` is never read
[INFO] [stdout]   --> src/user_interface/slider/components.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SliderOptions {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 17 |     pub format: ValueFormat,
[INFO] [stdout] 18 |     pub show_value: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SliderEmitMode` is never used
[INFO] [stdout]   --> src/user_interface/slider/components.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum SliderEmitMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderPendingChange` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SliderPendingChange {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Percent` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum ValueFormat {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] 34 |     Precision(usize),
[INFO] [stdout] 35 |     Percent(usize),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `format` is never used
[INFO] [stdout]   --> src/user_interface/slider/components.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl ValueFormat {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 56 |     pub fn format(&self, value: f32) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Vertical` is never constructed
[INFO] [stdout]   --> src/user_interface/slider/components.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum SliderOrientation {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 82 |     Horizontal,
[INFO] [stdout] 83 |     Vertical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderOrientation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `handle_entity`, `previous_value`, and `orientation` are never read
[INFO] [stdout]   --> src/user_interface/slider/events.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct SliderValueChangedEvent {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout]  6 |     pub entity: Entity,
[INFO] [stdout]  7 |     pub handle_entity: Entity,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]  8 |     pub previous_value: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     pub new_value: f32,
[INFO] [stdout] 10 |     pub orientation: SliderOrientation,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliderValueChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slider_buffer_changes_system` is never used
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn slider_buffer_changes_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `slider_emit_buffered_changes_system` is never used
[INFO] [stdout]    --> src/user_interface/slider/systems.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn slider_emit_buffered_changes_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_step`, `with_orientation`, and `spawn_with_parent` are never used
[INFO] [stdout]    --> src/user_interface/slider/builder.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl<'w, 's, 'a> SliderBuilder<'w, 's, 'a> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn with_step(mut self, step: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn with_orientation(mut self, orientation: SliderOrientation) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn spawn_with_parent(self, parent_entity: Entity) -> Entity {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]   --> src/user_interface/dropdown/resources.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct DropdownOption {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 12 |     pub label: String,
[INFO] [stdout] 13 |     pub icon: Option<Handle<Image>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DropdownOption` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `previous_id`, `new_id`, and `previous_label` are never read
[INFO] [stdout]   --> src/user_interface/dropdown/events.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DropdownChangedEvent {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub previous_id: Option<DropdownOptionId>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 17 |     pub new_id: Option<DropdownOptionId>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub previous_label: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DropdownChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_placeholder` is never used
[INFO] [stdout]   --> src/user_interface/dropdown/builder.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl DropdownBuilder {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_placeholder(mut self, placeholder: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `velocity` is never read
[INFO] [stdout]   --> src/user_interface/toggle/components.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct ToggleAnimation {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub velocity: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToggleDragState` is never constructed
[INFO] [stdout]   --> src/user_interface/toggle/components.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct ToggleDragState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Programmatic` is never constructed
[INFO] [stdout]  --> src/user_interface/toggle/events.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ToggleChangeKind {
[INFO] [stdout]   |          ---------------- variant in this enum
[INFO] [stdout] 5 |     User,
[INFO] [stdout] 6 |     Programmatic,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ToggleChangeKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/user_interface/toggle/events.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ToggleChangedEvent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub kind: ToggleChangeKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToggleChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `disabled` and `spawn` are never used
[INFO] [stdout]   --> src/user_interface/toggle/builder.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'w, 's, 'a> ToggleBuilder<'w, 's, 'a> {
[INFO] [stdout]    | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn disabled(mut self, disabled: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn spawn(self) -> Entity {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scrollbar` is never constructed
[INFO] [stdout]   --> src/user_interface/scrollable.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Scrollbar;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entity` and `delta` are never read
[INFO] [stdout]   --> src/user_interface/scrollable.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ScrollEvent {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 64 |     pub entity: Entity,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 65 |     pub delta: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_scroll_speed` is never used
[INFO] [stdout]   --> src/user_interface/scrollable.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl<'w, 's, 'a> ScrollableBuilder<'w, 's, 'a> {
[INFO] [stdout]    | ---------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn with_scroll_speed(mut self, speed: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabDisabled` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TabDisabled;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabPanel` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TabPanel;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabInteractionState` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/components.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct TabInteractionState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabAnimation` is never constructed
[INFO] [stdout]    --> src/user_interface/tab_group/components.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct TabAnimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `change_kind` is never read
[INFO] [stdout]  --> src/user_interface/tab_group/events.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TabChangedEvent {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub change_kind: TabChangeKind,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TabChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Programmatic` and `Initialization` are never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/events.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum TabChangeKind {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 13 |     UserInteraction,
[INFO] [stdout] 14 |     Programmatic,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     Initialization,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TabChangeKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UpdateVisuals` is never constructed
[INFO] [stdout]  --> src/user_interface/tab_group/systems.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TabSystem {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     UpdateVisuals,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TabSystem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tab_visual_update_system` is never used
[INFO] [stdout]    --> src/user_interface/tab_group/systems.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn tab_visual_update_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabGroupBuilder` is never constructed
[INFO] [stdout]  --> src/user_interface/tab_group/builder.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct TabGroupBuilder<'w, 's, 'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TabDefinition` is never constructed
[INFO] [stdout]   --> src/user_interface/tab_group/builder.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TabDefinition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_tab`, `with_config`, `with_initial_tab`, and `spawn` are never used
[INFO] [stdout]   --> src/user_interface/tab_group/builder.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'w, 's, 'a> TabGroupBuilder<'w, 's, 'a> {
[INFO] [stdout]    | -------------------------------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new(commands: &'a mut Commands<'w, 's>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_tab(mut self, name: impl Into<String>, content_builder: impl FnOnce(&mut Commands) -> Entity + 'static) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn with_config(mut self, config: TabGroupConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn with_initial_tab(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn spawn(self) -> Entity {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBarBundle` is never constructed
[INFO] [stdout]  --> src/user_interface/progress_bar.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProgressBarBundle {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_value`, `with_visuals`, and `with_size` are never used
[INFO] [stdout]   --> src/user_interface/progress_bar.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl ProgressBarBundle {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(min: f32, max: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn with_value(mut self, value: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_visuals(mut self, visuals: ProgressBarVisuals) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn with_size(mut self, width: Val, height: Val) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `percentage` is never used
[INFO] [stdout]   --> src/user_interface/progress_bar.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ProgressBar {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn percentage(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fraction`, `Absolute`, and `Custom` are never constructed
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub enum ProgressTextFormat {
[INFO] [stdout]     |          ------------------ variants in this enum
[INFO] [stdout] 240 |     Percentage,
[INFO] [stdout] 241 |     Fraction,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 242 |     Absolute,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 243 |     Custom(Arc<dyn Fn(f32, f32) -> String + Send + Sync>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressTextFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_entity`, `previous_value`, `new_value`, and `change_kind` are never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub struct ProgressChangedEvent {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 274 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     pub previous_value: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 276 |     pub new_value: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 277 |     pub change_kind: ProgressChangeKind,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressChangedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_entity`, `threshold`, and `crossed_up` are never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct ProgressThresholdEvent {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 282 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 283 |     pub threshold: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 284 |     pub crossed_up: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressThresholdEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `progress_entity` is never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:289:9
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub struct ProgressCompletedEvent {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] 289 |     pub progress_entity: Entity,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProgressCompletedEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `default_font` is never read
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct ProgressBarAssets {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 309 |     pub default_font: Handle<Font>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:579:12
[INFO] [stdout]     |
[INFO] [stdout] 542 | impl<'w, 's, 'a> ProgressBarBuilder<'w, 's, 'a> {
[INFO] [stdout]     | ----------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 579 |     pub fn insert(mut self, parent: Entity) -> Entity {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_progress_value` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:737:8
[INFO] [stdout]     |
[INFO] [stdout] 737 | pub fn set_progress_value(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_progress` is never used
[INFO] [stdout]    --> src/user_interface/progress_bar.rs:748:8
[INFO] [stdout]     |
[INFO] [stdout] 748 | pub fn increment_progress(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `safe_despawn_delayed` is never used
[INFO] [stdout]   --> src/despawn.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub trait SafeDespawn {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 35 |     fn safe_despawn(&mut self) -> &mut Self;
[INFO] [stdout] 36 |     fn safe_despawn_delayed(&mut self, delay: f32) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_ambient` is never used
[INFO] [stdout]   --> src/audio/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn play_ambient(commands: &mut Commands, handle: Handle<bevy::audio::AudioSource>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_bird_sound` is never used
[INFO] [stdout]   --> src/audio/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn play_bird_sound(commands: &mut Commands, entity: Entity, species: crate::bird::BirdSpecies, handle: Handle<bevy::audio::Audio...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_ui_sound` is never used
[INFO] [stdout]   --> src/audio/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn play_ui_sound(commands: &mut Commands, handle: Handle<bevy::audio::AudioSource>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_entity`, `max_distance`, and `volume_curve` are never read
[INFO] [stdout]  --> src/audio/components.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PositionalAudioSource {
[INFO] [stdout]   |            --------------------- fields in this struct
[INFO] [stdout] 7 |     pub source_entity: Entity,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 8 |     pub max_distance: f32,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 9 |     pub volume_curve: AudioVolumeCurve,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Exponential` is never constructed
[INFO] [stdout]   --> src/audio/components.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum AudioVolumeCurve {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] 14 |     Linear,
[INFO] [stdout] 15 |     Exponential,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioVolumeCurve` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sink_handle` is never read
[INFO] [stdout]   --> src/audio/components.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AudioSinkComponent {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 21 |     pub sink_handle: Handle<bevy::audio::AudioSource>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioCleanupTimer` is never constructed
[INFO] [stdout]   --> src/audio/components.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AudioCleanupTimer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PlayGlobal`, `PlayAt`, and `PlayFromEntity` are never constructed
[INFO] [stdout]   --> src/audio/resources.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum AudioCommand {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 46 |     PlayGlobal,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 47 |     PlayAt(Vec2),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 48 |     PlayFromEntity(Entity),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioCommand` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BirdVocalization`, `AmbientTrack`, and `UiSound` are never constructed
[INFO] [stdout]   --> src/audio/resources.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum AudioSource {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 53 |     BirdVocalization(Handle<bevy::audio::AudioSource>, BirdSpecies),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     AmbientTrack(Handle<bevy::audio::AudioSource>),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 55 |     UiSound(Handle<bevy::audio::AudioSource>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioSource` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `notification_type` is never read
[INFO] [stdout]  --> src/notifications/components.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Notification {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 8 |     pub lifetime: Timer,
[INFO] [stdout] 9 |     pub notification_type: NotificationType,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/notifications/resources.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl NotificationQueue {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeatherEffectEntity` is never constructed
[INFO] [stdout]  --> src/environment/components.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct WeatherEffectEntity;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `base_color` is never read
[INFO] [stdout]   --> src/environment/components.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DynamicAmbientLight {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 11 |     pub base_color: Color,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `blend_mode` is never read
[INFO] [stdout]   --> src/environment/components.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct DayNightOverlay {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub blend_mode: DayNightBlendMode,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cast_shadows` is never read
[INFO] [stdout]   --> src/environment/components.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SunLight {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub cast_shadows: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Overlay` and `SoftLight` are never constructed
[INFO] [stdout]   --> src/environment/components.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum DayNightBlendMode {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 43 |     Multiply,
[INFO] [stdout] 44 |     Overlay,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 45 |     SoftLight,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DayNightBlendMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next` and `migration_factor` are never used
[INFO] [stdout]   --> src/environment/components.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Season {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 57 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn migration_factor(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `requires_shelter` is never used
[INFO] [stdout]    --> src/environment/components.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl Weather {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn requires_shelter(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_spawn_probability` is never used
[INFO] [stdout]    --> src/environment/resources.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl SeasonalState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_spawn_probability(&self, species: &BirdSpecies) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `temperature` is never read
[INFO] [stdout]    --> src/environment/resources.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct WeatherChangeEvent {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 180 |     pub new_weather: Weather,
[INFO] [stdout] 181 |     pub temperature: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_hour` and `new_day` are never read
[INFO] [stdout]    --> src/environment/resources.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct TimeChangeEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 186 |     pub new_hour: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 187 |     pub new_day: u32,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamUser` is never constructed
[INFO] [stdout]  --> src/steam/components.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SteamUser {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workshop_id` and `description` are never read
[INFO] [stdout]   --> src/steam/components.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct WorkshopItem {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub workshop_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `behavior_data` is never read
[INFO] [stdout]   --> src/steam/components.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     CustomBird {
[INFO] [stdout]    |     ---------- field in this variant
[INFO] [stdout] 21 |         species_name: String,
[INFO] [stdout] 22 |         behavior_data: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopItemType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supported_food_types` is never read
[INFO] [stdout]   --> src/steam/components.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct FeederWorkshopStats {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub supported_food_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeederWorkshopStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `app_id` and `client` are never read
[INFO] [stdout]   --> src/steam/resources.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct SteamState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub app_id: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub user_id: Option<u64>,
[INFO] [stdout] 14 |     pub client: SteamClientWrapper,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `achievement_id` is never read
[INFO] [stdout]    --> src/steam/resources.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct SteamAchievementEvent {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 102 |     pub achievement_id: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stat_name` and `value` are never read
[INFO] [stdout]    --> src/steam/resources.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct SteamStatsEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 107 |     pub stat_name: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 108 |     pub value: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_connection` is never used
[INFO] [stdout]   --> src/steam/systems.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn check_steam_connection() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_process` is never used
[INFO] [stdout]   --> src/steam/systems.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn check_steam_process() -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_alternative_steam_processes` is never used
[INFO] [stdout]    --> src/steam/systems.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn check_alternative_steam_processes() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_directory_linux` is never used
[INFO] [stdout]    --> src/steam/systems.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn check_steam_directory_linux() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_api_availability` is never used
[INFO] [stdout]    --> src/steam/systems.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn check_steam_api_availability() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_steam_config_files` is never used
[INFO] [stdout]    --> src/steam/systems.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn check_steam_config_files() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_steam_systems_with_check` is never used
[INFO] [stdout]    --> src/steam/systems.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn initialize_steam_systems_with_check(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_steam_leaderboards` is never used
[INFO] [stdout]    --> src/steam/systems.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn sync_steam_leaderboards(score: u64, category: &str) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfilingDisplay` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ProfilingDisplay;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceMonitored` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PerformanceMonitored {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntityCounter` is never constructed
[INFO] [stdout]   --> src/performance/components.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct EntityCounter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `update_time_ms`, `render_time_ms`, `ai_system_time_ms`, and `physics_time_ms` are never read
[INFO] [stdout]   --> src/performance/resources.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PerformanceMetrics {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub update_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub render_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub ai_system_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     pub physics_time_ms: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_times`, `system_call_counts`, and `profiling_enabled` are never read
[INFO] [stdout]   --> src/performance/resources.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct ProfilingData {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 85 |     pub system_times: HashMap<String, Duration>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 86 |     pub system_call_counts: HashMap<String, u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub profiling_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `issue_type` and `suggested_fix` are never read
[INFO] [stdout]    --> src/performance/resources.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct PerformanceBottleneck {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 107 |     pub system_name: String,
[INFO] [stdout] 108 |     pub issue_type: BottleneckType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub suggested_fix: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PerformanceBottleneck` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HighCpuUsage`, `SlowSystem`, `IneffientQuery`, and `MemoryLeak` are never constructed
[INFO] [stdout]    --> src/performance/resources.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum BottleneckType {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 117 |     HighCpuUsage,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     SlowSystem,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 121 |     TooManyEntities,
[INFO] [stdout] 122 |     IneffientQuery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 123 |     MemoryLeak,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BottleneckType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Low` is never constructed
[INFO] [stdout]    --> src/performance/resources.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub enum BottleneckSeverity {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] 128 |     Low,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BottleneckSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `flock_id` and `social_distance` are never read
[INFO] [stdout]  --> src/flocking/components.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct FlockMember {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     pub flock_id: Option<Entity>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub social_distance: f32,      // Preferred distance from other birds
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species`, `members`, `center`, and `max_size` are never read
[INFO] [stdout]   --> src/flocking/components.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Flock {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 23 |     pub species: BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 24 |     pub members: Vec<Entity>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |     pub center: Vec2,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 26 |     pub max_size: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/flocking/components.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Flock {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(species: BirdSpecies) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `center` and `species` are never read
[INFO] [stdout]   --> src/flocking/components.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Territory {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 42 |     pub center: Vec2,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 43 |     pub radius: f32,
[INFO] [stdout] 44 |     pub species: BirdSpecies,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `detection_radius`, `panic_threshold`, and `escape_speed_multiplier` are never read
[INFO] [stdout]   --> src/flocking/components.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct PredatorAvoidance {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 61 |     pub detection_radius: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub panic_threshold: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     pub escape_speed_multiplier: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `intensity` and `depth_layer` are never read
[INFO] [stdout]  --> src/weather_effects/components.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RainParticle {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub intensity: f32,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 8 |     pub depth_layer: u8,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/weather_effects/components.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SnowParticle {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub size: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]   --> src/weather_effects/components.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |     FallingLeaf { color: Color, rotation_speed: f32 },
[INFO] [stdout]    |     -----------   ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnvironmentalParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FeatherDrift` is never constructed
[INFO] [stdout]   --> src/weather_effects/components.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum EnvironmentalParticleType {
[INFO] [stdout]    |          ------------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     FeatherDrift { source_species: crate::bird::BirdSpecies },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnvironmentalParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `particle_type`, `velocity`, and `source_entity` are never read
[INFO] [stdout]   --> src/weather_effects/components.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct InteractiveParticle {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 49 |     pub particle_type: InteractiveParticleType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub velocity: Vec2,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     pub lifetime: f32,
[INFO] [stdout] 52 |     pub source_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SeedScatter`, `WaterSplash`, `BirdSplash`, and `FeederCrumbs` are never constructed
[INFO] [stdout]   --> src/weather_effects/components.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum InteractiveParticleType {
[INFO] [stdout]    |          ----------------------- variants in this enum
[INFO] [stdout] 57 |     SeedScatter { seed_type: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 58 |     WaterSplash { ripple_strength: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 59 |     BirdSplash { splash_size: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 60 |     FeederCrumbs { food_type: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InteractiveParticleType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_particle_system` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn interactive_particle_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_seed_scatter` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn spawn_seed_scatter(commands: &mut Commands, position: Vec2, species: crate::bird::BirdSpecies, bird_data: &crate::bird_data::Bir...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_water_splash` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn spawn_water_splash(commands: &mut Commands, position: Vec2, is_bathing: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_particle_movement` is never used
[INFO] [stdout]    --> src/weather_effects/systems.rs:421:8
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub fn interactive_particle_movement(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_feeding_preference`, `get_behavioral_trait`, and `get_size_category` are never used
[INFO] [stdout]   --> src/bird_data.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl BirdDataRegistry {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn get_feeding_preference(&self, species: &BirdSpecies, food_type: &str) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn get_behavioral_trait(&self, species: &BirdSpecies, trait_name: &str) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn get_size_category(&self, species: &BirdSpecies) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `feeding_preference_fallback`, `behavioral_trait_fallback`, and `size_category_fallback` are never used
[INFO] [stdout]    --> src/bird_data.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl BirdSpecies {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 109 |     fn feeding_preference_fallback(&self, food_type: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn behavioral_trait_fallback(&self, trait_name: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn size_category_fallback(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `species_preference` is never read
[INFO] [stdout]   --> src/legacy_smart_objects.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PerchingSpot {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub species_preference: Vec<BirdSpecies>, // Which species prefer this perch
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Post` and `Roof` are never constructed
[INFO] [stdout]   --> src/legacy_smart_objects.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum PerchType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 40 |     Branch,      // Natural tree branch
[INFO] [stdout] 41 |     Post,        // Artificial perching post
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Wire,        // Utility wire or fence
[INFO] [stdout] 43 |     Roof,        // Building edge or roof
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PerchType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `concealment` is never read
[INFO] [stdout]   --> src/legacy_smart_objects.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Shelter {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub concealment: f32,        // 0.0-1.0, protection from predators
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RockCrevice` and `Undergrowth` are never constructed
[INFO] [stdout]   --> src/legacy_smart_objects.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub enum ShelterType {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 85 |     RockCrevice,    // Natural rock formation
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 86 |     Undergrowth,    // Low vegetation cover
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShelterType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `flow_rate` is never read
[INFO] [stdout]    --> src/legacy_smart_objects.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct WaterFeature {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub flow_rate: f32,          // For moving water features
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pond` and `DrippingTap` are never constructed
[INFO] [stdout]    --> src/legacy_smart_objects.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub enum WaterType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 136 |     Pond,          // Large still water
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 137 |     Creek,         // Natural flowing water
[INFO] [stdout] 138 |     DrippingTap,   // Artificial drip water source
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WaterType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `utility_decay_rate` and `duration_range` are never used
[INFO] [stdout]    --> src/legacy_smart_objects.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl BirdAction {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 177 |     pub fn utility_decay_rate(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn duration_range(&self) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workshop_metadata` is never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct WorkshopUploadEvent {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] 123 |     pub object_id: String,
[INFO] [stdout] 124 |     pub workshop_metadata: WorkshopItemMetadata,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `install_path` is never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct WorkshopDownloadEvent {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] 129 |     pub workshop_item_id: String,
[INFO] [stdout] 130 |     pub install_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workshop_metadata`, `local_path`, and `is_subscribed` are never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct WorkshopSmartObject {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 145 |     pub base_definition: SmartObjectDefinition,
[INFO] [stdout] 146 |     pub workshop_metadata: WorkshopItemMetadata,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 |     pub local_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 148 |     pub is_subscribed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopSmartObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/smart_objects/mod.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct WorkshopItemMetadata {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 153 |     pub title: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 154 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 155 |     pub author: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 156 |     pub version: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 157 |     pub tags: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 158 |     pub thumbnail_path: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     pub rating: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 160 |     pub download_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     pub file_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 162 |     pub dependencies: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopItemMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all_available_definitions`, `register_workshop_item`, `get_workshop_items_by_author`, and `search_workshop_items` are never used
[INFO] [stdout]    --> src/smart_objects/mod.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl SmartObjectRegistry {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn get_all_available_definitions(&self) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn register_workshop_item(&mut self, id: String, item: WorkshopSmartObject) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get_workshop_items_by_author(&self, author: &str) -> Vec<&WorkshopSmartObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn search_workshop_items(&self, query: &str, tags: &[String]) -> Vec<&WorkshopSmartObject> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_usage_time` is never read
[INFO] [stdout]    --> src/smart_objects/config.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct ConfigurableSmartObject {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub total_usage_time: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigurableSmartObject` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_definitions_by_category` and `get_unlocked_items` are never used
[INFO] [stdout]    --> src/smart_objects/config.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl SmartObjectCatalog {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn get_definitions_by_category(&self, category: &str) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_unlocked_items(&self, player_level: u32) -> Vec<&SmartObjectDefinition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_attracted_species`, `parse_bird_species`, `get_species_preference`, and `can_accommodate_user` are never used
[INFO] [stdout]    --> src/smart_objects/config.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl SmartObjectDefinition {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn get_attracted_species(&self) -> Vec<BirdSpecies> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn parse_bird_species(&self, species: &str) -> Option<BirdSpecies> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn get_species_preference(&self, species: &str) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn can_accommodate_user(&self, current_users: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `published_items` is never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SteamWorkshopClient {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub published_items: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id`, `title`, `local_path`, `last_updated`, `is_installed`, and `needs_update` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct WorkshopSubscription {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 30 |     pub item_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub local_path: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 33 |     pub last_updated: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub is_installed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub needs_update: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopSubscription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `callback_entity` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct WorkshopDownloadTask {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 40 |     pub item_id: String,
[INFO] [stdout] 41 |     pub priority: DownloadPriority,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 42 |     pub callback_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopDownloadTask` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Low`, `High`, and `Critical` are never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum DownloadPriority {
[INFO] [stdout]    |          ---------------- variants in this enum
[INFO] [stdout] 47 |     Low,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 48 |     Normal,
[INFO] [stdout] 49 |     High,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 50 |     Critical,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadPriority` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `upload_metadata` and `preview_image_path` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct WorkshopUploadTask {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 55 |     pub package: WorkshopPackage,
[INFO] [stdout] 56 |     pub upload_metadata: WorkshopUploadMetadata,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub preview_image_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopUploadTask` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, `tags`, `visibility`, and `change_notes` are never read
[INFO] [stdout]   --> src/smart_objects/workshop.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct WorkshopUploadMetadata {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] 62 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 63 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 64 |     pub tags: Vec<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 65 |     pub visibility: WorkshopVisibility,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 66 |     pub change_notes: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopUploadMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Public`, `FriendsOnly`, and `Private` are never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum WorkshopVisibility {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 71 |     Public,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 72 |     FriendsOnly,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 73 |     Private,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorkshopVisibility` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopBrowser` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct WorkshopBrowser;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopItemCard` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct WorkshopItemCard {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopSearchBar` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct WorkshopSearchBar;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopFilterPanel` is never constructed
[INFO] [stdout]   --> src/smart_objects/workshop.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct WorkshopFilterPanel;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sort_order`, `current_page`, `items_per_page`, `loaded_items`, and `selected_item` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:96:9
[INFO] [stdout]     |
[INFO] [stdout]  92 | pub struct WorkshopBrowserState {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub sort_order: WorkshopSortOrder,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]  97 |     pub current_page: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub items_per_page: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub loaded_items: Vec<WorkshopBrowserItem>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub selected_item: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `categories`, `rating_min`, `author`, `subscribed_only`, and `compatible_only` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct WorkshopFilters {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 105 |     pub categories: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 106 |     pub tags: Vec<String>,
[INFO] [stdout] 107 |     pub rating_min: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 108 |     pub author: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 109 |     pub subscribed_only: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     pub compatible_only: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopFilters` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Recent`, `Rating`, `Alphabetical`, `Author`, and `Downloads` are never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum WorkshopSortOrder {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] 115 |     Popular,
[INFO] [stdout] 116 |     Recent,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 117 |     Rating,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 118 |     Alphabetical,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 119 |     Author,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 120 |     Downloads,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopSortOrder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct WorkshopBrowserItem {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 125 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 126 |     pub title: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 127 |     pub author: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 128 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 129 |     pub preview_image: Option<Handle<Image>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 130 |     pub rating: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 131 |     pub download_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 132 |     pub file_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 133 |     pub last_updated: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 134 |     pub tags: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 135 |     pub is_subscribed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 136 |     pub is_installed: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopBrowserItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id` and `rating` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct RateItemEvent {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 180 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 181 |     pub rating: u32, // 1-5 stars
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id` and `report_reason` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct ReportItemEvent {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 186 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 187 |     pub report_reason: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `package` and `metadata` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct PublishItemEvent {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 192 |     pub package: WorkshopPackage,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 193 |     pub metadata: WorkshopUploadMetadata,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `item_id`, `package`, and `change_notes` are never read
[INFO] [stdout]    --> src/smart_objects/workshop.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct UpdatePublishedItemEvent {
[INFO] [stdout]     |            ------------------------ fields in this struct
[INFO] [stdout] 198 |     pub item_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 199 |     pub package: WorkshopPackage,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 200 |     pub change_notes: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopValidator` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:326:12
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub struct WorkshopValidator;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `validate_package` is never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl WorkshopValidator {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 329 |     pub fn validate_package(package: &WorkshopPackage) -> WorkshopValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopValidationResult` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:370:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub struct WorkshopValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | impl WorkshopValidationResult {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 376 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkshopHelpers` is never constructed
[INFO] [stdout]    --> src/smart_objects/workshop.rs:382:12
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub struct WorkshopHelpers;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `generate_preview_image`, `create_workshop_tags`, and `estimate_download_size` are never used
[INFO] [stdout]    --> src/smart_objects/workshop.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | impl WorkshopHelpers {
[INFO] [stdout]     | -------------------- associated functions in this implementation
[INFO] [stdout] 385 |     pub fn generate_preview_image(definition: &SmartObjectDefinition) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn create_workshop_tags(definition: &SmartObjectDefinition) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn estimate_download_size(package: &WorkshopPackage) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_open`, `current_template`, `editing_mode`, `preview_entity`, `unsaved_changes`, and `selected_property_category` are never read
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CreationKitState {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  8 |     pub is_open: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]  9 |     pub current_template: Option<SmartObjectDefinition>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub editing_mode: EditingMode,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub preview_entity: Option<Entity>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub unsaved_changes: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub selected_property_category: PropertyCategory,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Creating`, `Modifying`, and `Testing` are never constructed
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum EditingMode {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Creating,    // Creating new object from scratch
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     Modifying,   // Modifying existing object
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 22 |     Testing,     // Testing object in game world
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Visual`, `Physics`, `Behavior`, `Attraction`, `Economy`, and `Workshop` are never constructed
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum PropertyCategory {
[INFO] [stdout]    |          ---------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Visual,      // Appearance and animation
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     Physics,     // Collision and weight
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     Behavior,    // Actions and utility
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     Attraction,  // Species preferences
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 33 |     Economy,     // Cost and durability
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     Workshop,    // Modding and sharing
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `templates` is never read
[INFO] [stdout]   --> src/smart_objects/creation_kit.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct CreationKitTemplates {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 40 |     pub templates: HashMap<String, SmartObjectDefinition>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateNewObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct CreateNewObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SaveObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct SaveObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct LoadObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct TestObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExportObjectEvent` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct ExportObjectEvent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExportFormat` is never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:218:10
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub enum ExportFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PropertyConstraints` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct PropertyConstraints {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectValidator` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub struct ObjectValidator;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `validate_definition` is never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl ObjectValidator {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 269 |     pub fn validate_definition(definition: &SmartObjectDefinition, constraints: &PropertyConstraints) -> ValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidationResult` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 330 | pub struct ValidationResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_valid` and `has_warnings` are never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl ValidationResult {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 336 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn has_warnings(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreationKitHelpers` is never constructed
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 346 | pub struct CreationKitHelpers;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_property_display_name`, `get_property_tooltip`, `get_category_color`, `generate_unique_id`, and `export_to_workshop_format` are never used
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl CreationKitHelpers {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 349 |     pub fn get_property_display_name(property: &str) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn get_property_tooltip(property: &str) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn get_category_color(category: &str) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn generate_unique_id(base_name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn export_to_workshop_format(definition: &SmartObjectDefinition) -> WorkshopPackage {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `required_assets`, `metadata_version`, and `compatibility_version` are never read
[INFO] [stdout]    --> src/smart_objects/creation_kit.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct WorkshopPackage {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 420 |     pub definition: SmartObjectDefinition,
[INFO] [stdout] 421 |     pub required_assets: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 422 |     pub metadata_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 423 |     pub compatibility_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WorkshopPackage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `object_type`, `seasonal_visibility`, `visual_appeal`, and `environmental_story` are never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AestheticObject {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 22 |     pub object_type: AestheticType,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 23 |     pub seasonal_visibility: bool,    // Whether this object appears/disappears seasonally
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub visual_appeal: f32,          // Contributes to photo composition scores
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub environmental_story: String, // What story this object tells
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opacity` and `scale_modifier` are never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SeasonalDecoration {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub opacity: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 33 |     pub scale_modifier: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_season` is never read
[INFO] [stdout]   --> src/aesthetic_objects.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct FlowerBed {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub peak_season: Season,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Wildflowers`, `SunBeams`, and `MailboxPost` are never constructed
[INFO] [stdout]   --> src/aesthetic_objects.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum AestheticType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Wildflowers,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     SunBeams,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     MailboxPost,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AestheticType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Daffodils`, `Lilacs`, `Sunflowers`, and `Pansies` are never constructed
[INFO] [stdout]   --> src/aesthetic_objects.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum FlowerType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 83 |     Tulips,      // Early spring
[INFO] [stdout] 84 |     Daffodils,   // Early spring
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 85 |     Lilacs,      // Late spring
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 86 |     Roses,       // Summer
[INFO] [stdout] 87 |     Sunflowers,  // Late summer
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 88 |     Mums,        // Fall
[INFO] [stdout] 89 |     Pansies,     // Cool weather
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FlowerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `seasonal_appeal` and `provides_photo_bonus` are never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl AestheticType {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn seasonal_appeal(&self, season: Season) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn provides_photo_bonus(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `drift_speed`, `direction`, and `opacity_cycle` are never read
[INFO] [stdout]    --> src/aesthetic_objects.rs:548:9
[INFO] [stdout]     |
[INFO] [stdout] 547 | pub struct CloudShadow {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 548 |     pub drift_speed: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 549 |     pub direction: Vec2,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 550 |     pub opacity_cycle: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cloud_shadow_system` is never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:648:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub fn cloud_shadow_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_aesthetic_bonus` is never used
[INFO] [stdout]    --> src/aesthetic_objects.rs:676:8
[INFO] [stdout]     |
[INFO] [stdout] 676 | pub fn calculate_aesthetic_bonus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CatalogItem` is never constructed
[INFO] [stdout]  --> src/catalog/components.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CatalogItem {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/catalog/components.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CategoryButton {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub category: crate::catalog::resources::ItemCategory,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ItemCard` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ItemCard {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PurchaseButton` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct PurchaseButton {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaceButton` is never constructed
[INFO] [stdout]   --> src/catalog/components.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct PlaceButton {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `placement_cost` is never read
[INFO] [stdout]   --> src/catalog/components.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct PlaceableObject {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 41 |     pub item_type: PlaceableItemType,
[INFO] [stdout] 42 |     pub placement_cost: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `description` and `attracts_species` are never used
[INFO] [stdout]    --> src/catalog/components.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl PlaceableItemType {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn description(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn attracts_species(&self) -> Vec<BirdSpecies> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `selected_category` is never read
[INFO] [stdout]  --> src/catalog/resources.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CatalogState {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     pub is_open: bool,
[INFO] [stdout] 8 |     pub selected_category: ItemCategory,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `items` are never used
[INFO] [stdout]   --> src/catalog/resources.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl ItemCategory {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn name(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn items(&self) -> Vec<PlaceableItemType> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_category_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn handle_category_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_purchase_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn handle_purchase_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_place_buttons` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:278:8
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub fn handle_place_buttons(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_catalog_ui` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout] 399 | pub fn update_catalog_ui(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_catalog_visibility` is never used
[INFO] [stdout]    --> src/catalog/systems.rs:715:8
[INFO] [stdout]     |
[INFO] [stdout] 715 | pub fn update_catalog_visibility(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SaveMarker` is never constructed
[INFO] [stdout]  --> src/save_load/components.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SaveMarker;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `filename` and `exists` are never read
[INFO] [stdout]   --> src/save_load/resources.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct SaveFileInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 79 |     pub slot: u32,
[INFO] [stdout] 80 |     pub filename: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 81 |     pub last_modified: std::time::SystemTime,
[INFO] [stdout] 82 |     pub exists: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SaveFileInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `save_name` is never read
[INFO] [stdout]    --> src/save_load/resources.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct SaveGameEvent {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 138 |     pub slot: u32,
[INFO] [stdout] 139 |     pub save_name: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_update` is never read
[INFO] [stdout]    --> src/save_load/resources.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub struct PlaytimeTracker {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 144 |     pub total_seconds: f64,
[INFO] [stdout] 145 |     last_update: Option<f64>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlaytimeTracker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot`, `success`, and `error_message` are never read
[INFO] [stdout]    --> src/save_load/resources.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SaveCompleteEvent {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 165 |     pub slot: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 166 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 167 |     pub error_message: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot`, `success`, and `error_message` are never read
[INFO] [stdout]    --> src/save_load/resources.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct LoadCompleteEvent {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 172 |     pub slot: u32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 173 |     pub success: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 174 |     pub error_message: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slot` is never read
[INFO] [stdout]   --> src/menu/components.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SaveSlotCard {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 29 |     pub slot: u32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsSlider` is never constructed
[INFO] [stdout]   --> src/menu/components.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct SettingsSlider {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VSync`, `Fullscreen`, `Resolution`, and `GraphicsQuality` are never constructed
[INFO] [stdout]   --> src/menu/components.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum GraphicsSettingType {
[INFO] [stdout]    |          ------------------- variants in this enum
[INFO] [stdout] 77 |     VSync,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 78 |     Fullscreen,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 79 |     Resolution,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 80 |     GraphicsQuality,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GraphicsSettingType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action` is never read
[INFO] [stdout]   --> src/menu/components.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct KeybindingButton {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 85 |     pub action: crate::keybindings::GameAction,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `action` is never read
[INFO] [stdout]   --> src/menu/components.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct KeybindingText {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 90 |     pub action: crate::keybindings::GameAction,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeybindingWaiting` is never constructed
[INFO] [stdout]   --> src/menu/components.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct KeybindingWaiting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `resolution_to_string` and `find_resolution_index` are never used
[INFO] [stdout]    --> src/menu/resources.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl GameSettings {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn resolution_to_string(resolution: (u32, u32)) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn find_resolution_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialDialog` is never constructed
[INFO] [stdout]  --> src/tutorial/components.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TutorialDialog;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialPointer` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TutorialPointer;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialSkipButton` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TutorialSkipButton;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialNextButton` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TutorialNextButton;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TutorialTarget` is never constructed
[INFO] [stdout]   --> src/tutorial/components.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct TutorialTarget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `input_hint` is never used
[INFO] [stdout]   --> src/tutorial/components.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl TutorialStep {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn input_hint(&self) -> Option<&'static str> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_step_completed` is never used
[INFO] [stdout]   --> src/tutorial/resources.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl TutorialProgress {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn is_step_completed(&self, step: TutorialStep) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tutorial_ui_update_system` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn tutorial_ui_update_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tutorial_button_system` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn tutorial_button_system(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_tutorial_ui` is never used
[INFO] [stdout]    --> src/tutorial/systems.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn spawn_tutorial_ui(commands: &mut Commands) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UIColors` is never constructed
[INFO] [stdout]  --> src/ui_widgets.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct UIColors;
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/ui_widgets.rs:8:15
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl UIColors {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout]  8 |     pub const BACKGROUND: Color = Color::srgb(0.9, 0.9, 0.9);
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout]  9 |     pub const BACKGROUND_HOVER: Color = Color::srgb(0.8, 0.8, 0.8);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub const BACKGROUND_PRESSED: Color = Color::srgb(0.7, 0.7, 0.7);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub const TEXT_PRIMARY: Color = Color::srgb(0.3, 0.2, 0.1);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub const TEXT_SECONDARY: Color = Color::srgb(0.5, 0.3, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub const ACCENT_ON: Color = Color::srgb(0.2, 0.6, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 14 |     pub const ACCENT_OFF: Color = Color::srgb(0.6, 0.2, 0.2);
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderWidget` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SliderWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderTrack` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SliderTrack;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderHandle` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SliderHandle;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderValueText` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SliderValueText;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SliderValueChanged` is never constructed
[INFO] [stdout]   --> src/ui_widgets.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct SliderValueChanged {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_step`, `without_percentage`, `get_percentage`, and `set_from_percentage` are never used
[INFO] [stdout]   --> src/ui_widgets.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl SliderWidget {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new(min: f32, max: f32, initial: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn with_step(mut self, step: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[WARN] too many lines in the log, truncating it
