The malleability type properties for `thresh` on the website state: > s=at most k-1 are non-s; e=all are s for `e` it should say `e=all are e and all are s`. The code implements it like this too: https://github.com/sipa/miniscript/blob/484386a50dbda962669cc163f239fe16e101b6f0/bitcoin/script/miniscript.cpp#L241