The solver form gains an Objective section with a product/sum mode
select and per-resource factor inputs (E/B/S/C, zero = excluded).
The /solve handler parses both fields and forwards them to solve(),
falling back to solve.py defaults when omitted.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>