Patrick Schurig ef67231ed1 feat(config): LM-300 — union discriminée, charge utile sg-ready
Première implémentation réelle du schéma de spec_loadmodel.md §3. Le champ `adapter`
devient le discriminant ; chaque mécanisme a UNE charge utile et valide la sienne :

  relay-router    → relays[]
  etmvariableload → powerLevels[] | maxPowerW
  sg-ready        → sgReady { states[] { state, relays[], estimatedPowerW }, minStateHoldS }

isValid() rejette les charges utiles étrangères dans les deux sens (LM-302 : les états
invalides doivent être inexprimables), et refuse toute configuration sg-ready dépourvue
de l'état 2, avec un message explicite.

estimatedPowerW garde ce nom parce que c'en est une : une PAC ne consomme pas la même
chose à −5 °C et à +12 °C. Le champ sert à ordonner et à budgéter ; la mesure reste la
source de vérité (ECS-500).

C'est un format PERSISTÉ : la forme est ce qui coûte cher à rattraper une fois que le
banc et la beta auront écrit des données. D'où l'union plutôt qu'un troisième cas
particulier.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 12:34:39 +02:00
..
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00
2026-01-11 11:09:23 +01:00