# Defines a project-specific cache variable on the command line with no
# ``:TYPE=`` annotation.  The documentation table cannot match this
# name, so the entry must remain ``:UNINITIALIZED=`` and receive the
# generic sentinel help string preserved for backwards compatibility.
