# The environment-variable surface, both directions. 2026-08-30.
#
# sylpheed-port swept documented -> parsed and found three live-but-undocumented
# flags, noting that a capability documented only in an 11 000-line record is, to
# anyone reading the interface, a capability that does not exist. This is the
# mirror on my side: every env var the CODE reads, checked against the docs.
# Like theirs it ENUMERATES, so it completes rather than samples.
#
#   41 environment variables read by crates/
#   19 documented
#   22 NOT documented, splitting cleanly:
#
#      7 read only in examples/ -- per-example output filters and dump paths.
#        KF_SHOW, MAX_PAD, OUT_DIR_X, SUPPRESS_SUBSTR, SYLPH_RAW,
#        VOICE_CHUNK_DUMP, DUMP_XPR_DIR
#        Scratch. Reachable only by editing an example's command line.
#
#     15 read in src/ -- LIVE capabilities of the library and CLI:
#        mesh / 3D   XCOLORSUB XDUMPHDR XDUMPVERT XMESHDBG XMIRROR XNODEDUMP
#                    XNODEXFORM XONLYSUB XSPANHIDE XSPANONLY
#        texture     XPR_FORCE_ENDIAN XPR_NO_BC_DWORD_SWAP XPR_NO_DETILE
#                    XPR_NO_ENDIAN XPR_RES_INDEX
#
# ✅ FOR THE PORT: none of the 15 is in the UI path. Every env var ui_layout.rs
# and the screen commands read is documented -- SYLPHEED_REST_RULE and
# SYLPHEED_KF_TIME_LEGACY. The menu lane is clean in this direction.
#
# ⚠️ The five XPR_* are TEXTURE DECODE toggles and the port consumes textures. If
# a sprite comparison ever disagrees, these are the knobs, and they are invisible
# from the interface.
#
# 🔴 LIMIT, stated rather than glossed: I verified NONE of the 15 end to end.
# `texture export` takes a loose file and the disc keeps its textures inside paks,
# so the check cost more than the answer was worth in this iteration. That matters
# because sylpheed-port found `--no-hold` PARSED, DOCUMENTED and INERT under an
# interaction with `--time`: "parsed and reachable" is not "works". So the honest
# claim is that 15 undocumented env vars are READ, not that 15 capabilities exist.
