Revise find-or-create-font type again

Need to make this more conservative for the two cases and
to accommodate contract generation
Fix tooltip type