OptionalonWhat to return when no non-negative finite interception exists.
"nan" (default) — the caller can refuse the shot."heuristic" — Reynolds' horizon |R| / projectileSpeed, so a
pursuer always has somewhere to steer.OptionalvalidateWhether a negative or non-finite projectileSpeed throws.
Default true. Steering sets false so a NaN / negative maxSpeed
propagates through the arithmetic instead of becoming a RangeError
on the hot path.
Policy knobs for interceptTime. Omitting the argument preserves the §111 lead contract (
NaNon a miss, throw on a bad speed).Steering's pursue / evade pass
{ onMiss: "heuristic", validateSpeed: false }so they keep the Reynolds fallback and the hot-path "do not validatemaxSpeed" rule without a second quadratic.