The saved composite score previously came from a requirement-solve that only satisfied the platform's physical performance floor, not the domain's actual weighted score -- a smaller/cheaper build could always score higher by hand. _decide_masses now jointly searches platform, actuator, and storage mass (coarse-to-fine grid, no external deps) to maximize the domain's real weighted composite score, with the requirement floor as a lower bound rather than the final answer. Platform mass specifically was previously fixed at a geometric-mean representative value, which could be too little structure to carry its own required actuator+storage (reusing CARGO_KG_PER_STRUCTURAL_KG, the existing structure-carries-N-times-its-mass ratio, applied to a platform carrying its own powertrain instead of cargo). Growing platform mass also raises that structural ceiling, so it has to be searched jointly rather than fixed or bounded independently. Because power_density/range_fuel/cost_efficiency are all per-kg ratios, none of them naturally penalize a build whose absolute mass exceeds its own platform's declared ceiling -- a Piston Engine sized for a Hyperloop could still score well on a Light Personal Vehicle. Pass 2 now detects genuine infeasibility (no platform mass within its own declared ceiling can structurally carry the required floor) and saves it as a per-domain block instead of a misleadingly good score. Also adds an explore-panel warning (not a hard block, since exploration is intentionally loose) when a manually-dragged slider build exceeds the platform's mass ceiling or structural carrying capacity. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.2 KiB
3.2 KiB