Follow-up to #162.
#162 set the identity-bearing component -> child Asset convention (Option C) and applied it to RotaryDriveChassis. The first nested-component case, the BM250_UF motor inside the PropagationDistance stage, predates that decision and is still a free-form descriptor blob:
deployments/2-bm/beamline.yaml:388
motor: { part: "Aerotech BM250_UF", type: "AC servo, 240 VAC", serial_number: "234848-07" }
BM250_UF is identity-bearing (own part + serial), so by the convention it should converge on the same shape: its own Asset (or the agreed nested-component representation) rather than an inline blob. Deliberately deferred from #162 to keep that PR scoped.
Trigger to act: when a third nested-component case arrives (the rule-of-three), design the general convention intentionally and back-migrate both BM250_UF and the RotaryDriveChassis interim onto it. Until then this tracks the known divergence so it is not lost.
Follow-up to #162.
#162 set the
identity-bearing component -> child Assetconvention (Option C) and applied it toRotaryDriveChassis. The first nested-component case, theBM250_UFmotor inside the PropagationDistance stage, predates that decision and is still a free-form descriptor blob:deployments/2-bm/beamline.yaml:388BM250_UFis identity-bearing (own part + serial), so by the convention it should converge on the same shape: its own Asset (or the agreed nested-component representation) rather than an inline blob. Deliberately deferred from #162 to keep that PR scoped.Trigger to act: when a third nested-component case arrives (the rule-of-three), design the general convention intentionally and back-migrate both
BM250_UFand theRotaryDriveChassisinterim onto it. Until then this tracks the known divergence so it is not lost.