SOGL V0.12, 31 bytes
½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq(‚7‘ b,ŗ e,ŗ
The first input can't contain the letter b
, which seems to leave a reasonable subset of ASCII (and unicode) left. 35 bytes with the restricted character being ")"
.
½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq(‚7‘
is a compressed string of "how much b would a be e if a be could e b?"
(characters chosen so the required words are all in the dictionary), then b
is replaced with the 1st input and e
with the 2nd.