I believe this is the right idea.  2 Suggestions:

1.  Sadly, the ratio should be a Decimal to allow for weird contracts that will eventually get made if they don't already exist.  Positive/Negative to denote long/short should work.

2.  Need to add a price ratio Decimal, as the pricing in the composite spread isn't always in the same units of price value as it's legs.  Example:

Therefore, the new implied Soybean Crush spread on CME Globex will be a fixed 3-legged spread consisting of:
Leg 1: Soybean Meal futures – 11 contracts
Leg 2: Soybean Oil futures – 9 contracts
Leg 3: Soybean futures – 10 contracts
The Soybean Crush price will be calculated using the respective different fixed quantities as follows:

Soybean Crush = Leg 1 (Soybean Meal Price x 0.022) + Leg 2 (Soybean Oil Price x 11) - Leg 3 (Soybean Futures Price)