So I think `prompt_opts=( subst )` is equivalent to what you had (`setopt prompt_subst`) but more idiomatic (or maybe just modern?).

I also had to add `percent` or your `%` expressions were appearing as literals for me.

IIUIC, `cr` makes zsh print a trailing `%` before redrawing the prompt if the actual output was missing a final newline (like `echo -n 'foo'`). This may be personal preference, not a necessity.

In any event, this was the most common set of options in the existing prompts on my system.