PlantFactory.create() no longer takes plant_name; sim vs real is derived from Heater.type. StirrerFactory is wired from Stirrer.type. HeaterFactory registry key lowercased to "hendi" to match config. Controller.plant_name removed from both config templates. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>