Turns out the motor digest hash function can have collisions. Since the digest is stored in the .ork file we don't want to rewrite it as that will cause *lots* of spurious "thrust curves don't match" warnings, and I really don't want to get into looking up by some sort of new digest if it exists else old digest.
Since some motor description fields are also stored in the .ork file, I'm effectively using these as a key to resolve collisions. Now that I need to pass them in to the findMotor() method, I'm merging it with findMotors() (which searches based on motor descriptions)
New combined method returns all motors that match digest and description;
If there are none returns all motors that match digest;
If there are none returns all motors that match description (may be empty)
Passing a digest and no other description emulates the behavior of the old findMotor() (but it may return more than one motor).
Passing description elements and no digest duplicates the behavior of the old findMotors()