schemas: legacy: use patternProperties

Taking this idea from an old patch [1].

Tested: Schema Validator Pass

References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/50770

Change-Id: I5e1a98363b3dc40979d6310a590ea3907d1038f4
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/schemas/legacy.json b/schemas/legacy.json
index 8c9583b..9aea8fe 100644
--- a/schemas/legacy.json
+++ b/schemas/legacy.json
@@ -115,6 +115,41 @@
         "Aggregate": {
             "description": "Don't add additional properties to this schema. Consult README.schema for instructions on adding new Exposes element sub-schema.",
             "additionalProperties": false,
+            "patternProperties": {
+                "Name(1[0-7]|[1-9])?$": {
+                    "$ref": "#/$defs/Types/Name"
+                },
+                "(vin|iin|pin|maxpin)_Name$": {
+                    "$ref": "#/$defs/Types/Name"
+                },
+                "(in|in_voltage|vout)(1[0-7]|[0-9])_Name$": {
+                    "$ref": "#/$defs/Types/Name"
+                },
+                "(curr|iin|iout|pin|pout|power|temp)(1[0-7]|[1-9])_Name$": {
+                    "$ref": "#/$defs/Types/Name"
+                },
+                "(in|in_voltage)(1[0-7]|[0-9])_Scale$": {
+                    "$ref": "#/$defs/Types/ScaleValue"
+                },
+                "(curr|power|iout)(1[0-7]|[1-9])_Scale$": {
+                    "$ref": "#/$defs/Types/ScaleValue"
+                },
+                "in(1[0-7]|[0-9])_PowerState$": {
+                    "$ref": "#/$defs/Types/PowerState"
+                },
+                "(in|vout|in_voltage)(1[0-7]|[0-9])_(Min|Max)$": {
+                    "$ref": "#/$defs/Types/MinMaxType"
+                },
+                "(iin|vin|curr|iout|pin|pout|temp)(1[0-7]|[1-9])?_(Min|Max)$": {
+                    "$ref": "#/$defs/Types/MinMaxType"
+                },
+                "power(1[0-7]|[1-9])?_Max$": {
+                    "$ref": "#/$defs/Types/MinMaxType"
+                },
+                "(power|curr|iout|pout|pin)(1[0-7]|[1-9])?_Offset$": {
+                    "$ref": "#/$defs/Types/OffsetType"
+                }
+            },
             "properties": {
                 "Address": {
                     "$ref": "#/$defs/Types/Address"
@@ -191,60 +226,6 @@
                 "MinValue": {
                     "$ref": "#/$defs/Types/MinValue"
                 },
-                "Name": {
-                    "$ref": "#/$defs/Types/Name"
-                },
-                "Name1": {
-                    "$ref": "#/$defs/Types/Name1"
-                },
-                "Name2": {
-                    "$ref": "#/$defs/Types/Name2"
-                },
-                "Name3": {
-                    "$ref": "#/$defs/Types/Name3"
-                },
-                "Name4": {
-                    "$ref": "#/$defs/Types/Name4"
-                },
-                "Name5": {
-                    "$ref": "#/$defs/Types/Name5"
-                },
-                "Name6": {
-                    "$ref": "#/$defs/Types/Name6"
-                },
-                "Name7": {
-                    "$ref": "#/$defs/Types/Name7"
-                },
-                "Name8": {
-                    "$ref": "#/$defs/Types/Name8"
-                },
-                "Name9": {
-                    "$ref": "#/$defs/Types/Name9"
-                },
-                "Name10": {
-                    "$ref": "#/$defs/Types/Name10"
-                },
-                "Name11": {
-                    "$ref": "#/$defs/Types/Name11"
-                },
-                "Name12": {
-                    "$ref": "#/$defs/Types/Name12"
-                },
-                "Name13": {
-                    "$ref": "#/$defs/Types/Name13"
-                },
-                "Name14": {
-                    "$ref": "#/$defs/Types/Name14"
-                },
-                "Name15": {
-                    "$ref": "#/$defs/Types/Name15"
-                },
-                "Name16": {
-                    "$ref": "#/$defs/Types/Name16"
-                },
-                "Name17": {
-                    "$ref": "#/$defs/Types/Name17"
-                },
                 "OffsetValue": {
                     "$ref": "#/$defs/Types/OffsetValue"
                 },
@@ -299,719 +280,17 @@
                 "HostSMbusIndex": {
                     "$ref": "#/$defs/Types/HostSMbusIndex"
                 },
-                "pin_Max": {
-                    "$ref": "#/$defs/Types/pin_Max"
-                },
-                "pin_Min": {
-                    "$ref": "#/$defs/Types/pin_Min"
-                },
-                "pin_Name": {
-                    "$ref": "#/$defs/Types/pin_Name"
-                },
-                "maxpin_Name": {
-                    "$ref": "#/$defs/Types/maxpin_Name"
-                },
-                "vin_Max": {
-                    "$ref": "#/$defs/Types/vin_Max"
-                },
-                "vin_Min": {
-                    "$ref": "#/$defs/Types/vin_Min"
-                },
-                "vin_Name": {
-                    "$ref": "#/$defs/Types/vin_Name"
-                },
-                "iin_Name": {
-                    "$ref": "#/$defs/Types/iin_Name"
-                },
-                "in0_Max": {
-                    "$ref": "#/$defs/Types/in0_Max"
-                },
-                "in0_Min": {
-                    "$ref": "#/$defs/Types/in0_Min"
-                },
-                "in0_Name": {
-                    "$ref": "#/$defs/Types/in0_Name"
-                },
-                "in1_Max": {
-                    "$ref": "#/$defs/Types/in1_Max"
-                },
-                "in1_Min": {
-                    "$ref": "#/$defs/Types/in1_Min"
-                },
-                "in1_Name": {
-                    "$ref": "#/$defs/Types/in1_Name"
-                },
-                "in2_Max": {
-                    "$ref": "#/$defs/Types/in2_Max"
-                },
-                "in2_Name": {
-                    "$ref": "#/$defs/Types/in2_Name"
-                },
-                "in3_Max": {
-                    "$ref": "#/$defs/Types/in3_Max"
-                },
-                "in3_Name": {
-                    "$ref": "#/$defs/Types/in3_Name"
-                },
-                "in4_Max": {
-                    "$ref": "#/$defs/Types/in4_Max"
-                },
-                "in4_Name": {
-                    "$ref": "#/$defs/Types/in4_Name"
-                },
-                "in5_Max": {
-                    "$ref": "#/$defs/Types/in5_Max"
-                },
-                "in5_Name": {
-                    "$ref": "#/$defs/Types/in5_Name"
-                },
-                "in6_Name": {
-                    "$ref": "#/$defs/Types/in6_Name"
-                },
-                "in7_Name": {
-                    "$ref": "#/$defs/Types/in7_Name"
-                },
-                "in_voltage0_Max": {
-                    "$ref": "#/$defs/Types/in_voltage0_Max"
-                },
-                "in_voltage0_Min": {
-                    "$ref": "#/$defs/Types/in_voltage0_Min"
-                },
-                "in_voltage0_Name": {
-                    "$ref": "#/$defs/Types/in_voltage0_Name"
-                },
-                "in_voltage1_Max": {
-                    "$ref": "#/$defs/Types/in_voltage1_Max"
-                },
-                "in_voltage1_Name": {
-                    "$ref": "#/$defs/Types/in_voltage1_Name"
-                },
-                "in_voltage2_Max": {
-                    "$ref": "#/$defs/Types/in_voltage2_Max"
-                },
-                "in_voltage2_Name": {
-                    "$ref": "#/$defs/Types/in_voltage2_Name"
-                },
-                "in_voltage3_Max": {
-                    "$ref": "#/$defs/Types/in_voltage3_Max"
-                },
-                "in_voltage3_Name": {
-                    "$ref": "#/$defs/Types/in_voltage3_Name"
-                },
-                "in_voltage4_Max": {
-                    "$ref": "#/$defs/Types/in_voltage4_Max"
-                },
-                "in_voltage4_Name": {
-                    "$ref": "#/$defs/Types/in_voltage4_Name"
-                },
-                "in_voltage5_Max": {
-                    "$ref": "#/$defs/Types/in_voltage5_Max"
-                },
-                "in_voltage5_Name": {
-                    "$ref": "#/$defs/Types/in_voltage5_Name"
-                },
-                "in_voltage6_Name": {
-                    "$ref": "#/$defs/Types/in_voltage6_Name"
-                },
-                "in_voltage7_Name": {
-                    "$ref": "#/$defs/Types/in_voltage7_Name"
-                },
-                "in_voltage8_Name": {
-                    "$ref": "#/$defs/Types/in_voltage8_Name"
-                },
-                "in_voltage9_Name": {
-                    "$ref": "#/$defs/Types/in_voltage9_Name"
-                },
-                "in0_PowerState": {
-                    "$ref": "#/$defs/Types/in0_PowerState"
-                },
-                "in1_PowerState": {
-                    "$ref": "#/$defs/Types/in1_PowerState"
-                },
-                "in2_PowerState": {
-                    "$ref": "#/$defs/Types/in2_PowerState"
-                },
-                "in3_PowerState": {
-                    "$ref": "#/$defs/Types/in3_PowerState"
-                },
-                "in4_PowerState": {
-                    "$ref": "#/$defs/Types/in4_PowerState"
-                },
-                "in5_PowerState": {
-                    "$ref": "#/$defs/Types/in5_PowerState"
-                },
-                "in6_PowerState": {
-                    "$ref": "#/$defs/Types/in6_PowerState"
-                },
-                "in7_PowerState": {
-                    "$ref": "#/$defs/Types/in7_PowerState"
-                },
-                "curr1_Name": {
-                    "$ref": "#/$defs/Types/curr1_Name"
-                },
-                "curr1_Max": {
-                    "$ref": "#/$defs/Types/curr1_Max"
-                },
-                "curr1_Min": {
-                    "$ref": "#/$defs/Types/curr1_Min"
-                },
-                "curr2_Name": {
-                    "$ref": "#/$defs/Types/curr2_Name"
-                },
-                "curr3_Name": {
-                    "$ref": "#/$defs/Types/curr3_Name"
-                },
-                "curr4_Name": {
-                    "$ref": "#/$defs/Types/curr4_Name"
-                },
-                "iin1_Max": {
-                    "$ref": "#/$defs/Types/iin1_Max"
-                },
-                "iin1_Min": {
-                    "$ref": "#/$defs/Types/iin1_Min"
-                },
-                "iin1_Name": {
-                    "$ref": "#/$defs/Types/iin1_Name"
-                },
-                "iin2_Max": {
-                    "$ref": "#/$defs/Types/iin2_Max"
-                },
-                "iin2_Min": {
-                    "$ref": "#/$defs/Types/iin2_Min"
-                },
-                "iin2_Name": {
-                    "$ref": "#/$defs/Types/iin2_Name"
-                },
-                "iin3_Max": {
-                    "$ref": "#/$defs/Types/iin3_Max"
-                },
-                "iin3_Min": {
-                    "$ref": "#/$defs/Types/iin3_Min"
-                },
-                "iin3_Name": {
-                    "$ref": "#/$defs/Types/iin3_Name"
-                },
-                "iout1_Max": {
-                    "$ref": "#/$defs/Types/iout1_Max"
-                },
-                "iout1_Min": {
-                    "$ref": "#/$defs/Types/iout1_Min"
-                },
-                "iout1_Name": {
-                    "$ref": "#/$defs/Types/iout1_Name"
-                },
                 "maxiout1_Name": {
-                    "$ref": "#/$defs/Types/maxiout1_Name"
-                },
-                "iout2_Max": {
-                    "$ref": "#/$defs/Types/iout2_Max"
-                },
-                "iout2_Min": {
-                    "$ref": "#/$defs/Types/iout2_Min"
-                },
-                "iout2_Name": {
-                    "$ref": "#/$defs/Types/iout2_Name"
-                },
-                "iout3_Max": {
-                    "$ref": "#/$defs/Types/iout3_Max"
-                },
-                "iout3_Min": {
-                    "$ref": "#/$defs/Types/iout3_Min"
-                },
-                "iout3_Name": {
-                    "$ref": "#/$defs/Types/iout3_Name"
-                },
-                "iout4_Max": {
-                    "$ref": "#/$defs/Types/iout4_Max"
-                },
-                "iout4_Min": {
-                    "$ref": "#/$defs/Types/iout4_Min"
-                },
-                "iout4_Name": {
-                    "$ref": "#/$defs/Types/iout4_Name"
-                },
-                "iout5_Max": {
-                    "$ref": "#/$defs/Types/iout5_Max"
-                },
-                "iout5_Min": {
-                    "$ref": "#/$defs/Types/iout5_Min"
-                },
-                "iout5_Name": {
-                    "$ref": "#/$defs/Types/iout5_Name"
-                },
-                "pin1_Max": {
-                    "$ref": "#/$defs/Types/pin1_Max"
-                },
-                "pin1_Min": {
-                    "$ref": "#/$defs/Types/pin1_Min"
-                },
-                "pin1_Name": {
-                    "$ref": "#/$defs/Types/pin1_Name"
-                },
-                "pin2_Max": {
-                    "$ref": "#/$defs/Types/pin2_Max"
-                },
-                "pin2_Min": {
-                    "$ref": "#/$defs/Types/pin2_Min"
-                },
-                "pin2_Name": {
-                    "$ref": "#/$defs/Types/pin2_Name"
-                },
-                "pin3_Max": {
-                    "$ref": "#/$defs/Types/pin3_Max"
-                },
-                "pin3_Min": {
-                    "$ref": "#/$defs/Types/pin3_Min"
-                },
-                "pin3_Name": {
-                    "$ref": "#/$defs/Types/pin3_Name"
-                },
-                "pout1_Max": {
-                    "$ref": "#/$defs/Types/pout1_Max"
-                },
-                "pout1_Min": {
-                    "$ref": "#/$defs/Types/pout1_Min"
-                },
-                "pout1_Name": {
-                    "$ref": "#/$defs/Types/pout1_Name"
-                },
-                "pout2_Max": {
-                    "$ref": "#/$defs/Types/pout2_Max"
-                },
-                "pout2_Min": {
-                    "$ref": "#/$defs/Types/pout2_Min"
-                },
-                "pout2_Name": {
-                    "$ref": "#/$defs/Types/pout2_Name"
-                },
-                "pout3_Max": {
-                    "$ref": "#/$defs/Types/pout3_Max"
-                },
-                "pout3_Min": {
-                    "$ref": "#/$defs/Types/pout3_Min"
-                },
-                "pout3_Name": {
-                    "$ref": "#/$defs/Types/pout3_Name"
-                },
-                "power1_Max": {
-                    "$ref": "#/$defs/Types/power1_Max"
-                },
-                "power1_Name": {
-                    "$ref": "#/$defs/Types/power1_Name"
-                },
-                "power2_Max": {
-                    "$ref": "#/$defs/Types/power2_Max"
-                },
-                "power2_Name": {
-                    "$ref": "#/$defs/Types/power2_Name"
-                },
-                "power3_Max": {
-                    "$ref": "#/$defs/Types/power3_Max"
-                },
-                "power3_Name": {
-                    "$ref": "#/$defs/Types/power3_Name"
-                },
-                "power4_Max": {
-                    "$ref": "#/$defs/Types/power4_Max"
-                },
-                "power4_Name": {
-                    "$ref": "#/$defs/Types/power4_Name"
-                },
-                "power5_Max": {
-                    "$ref": "#/$defs/Types/power5_Max"
-                },
-                "power5_Name": {
-                    "$ref": "#/$defs/Types/power5_Name"
-                },
-                "power6_Name": {
-                    "$ref": "#/$defs/Types/power6_Name"
-                },
-                "power7_Name": {
-                    "$ref": "#/$defs/Types/power7_Name"
-                },
-                "power8_Name": {
-                    "$ref": "#/$defs/Types/power8_Name"
-                },
-                "power9_Name": {
-                    "$ref": "#/$defs/Types/power9_Name"
-                },
-                "temp1_Max": {
-                    "$ref": "#/$defs/Types/temp1_Max"
-                },
-                "temp1_Min": {
-                    "$ref": "#/$defs/Types/temp1_Min"
-                },
-                "temp1_Name": {
-                    "$ref": "#/$defs/Types/temp1_Name"
-                },
-                "temp2_Max": {
-                    "$ref": "#/$defs/Types/temp2_Max"
-                },
-                "temp2_Min": {
-                    "$ref": "#/$defs/Types/temp2_Min"
-                },
-                "temp2_Name": {
-                    "$ref": "#/$defs/Types/temp2_Name"
-                },
-                "temp3_Max": {
-                    "$ref": "#/$defs/Types/temp1_Max"
-                },
-                "temp3_Min": {
-                    "$ref": "#/$defs/Types/temp1_Min"
-                },
-                "temp3_Name": {
-                    "$ref": "#/$defs/Types/temp3_Name"
-                },
-                "temp4_Max": {
-                    "$ref": "#/$defs/Types/temp4_Max"
-                },
-                "temp4_Min": {
-                    "$ref": "#/$defs/Types/temp4_Min"
-                },
-                "temp4_Name": {
-                    "$ref": "#/$defs/Types/temp4_Name"
-                },
-                "temp5_Max": {
-                    "$ref": "#/$defs/Types/temp5_Max"
-                },
-                "temp5_Min": {
-                    "$ref": "#/$defs/Types/temp5_Min"
-                },
-                "temp5_Name": {
-                    "$ref": "#/$defs/Types/temp5_Name"
-                },
-                "temp6_Max": {
-                    "$ref": "#/$defs/Types/temp6_Max"
-                },
-                "temp6_Min": {
-                    "$ref": "#/$defs/Types/temp6_Min"
-                },
-                "temp6_Name": {
-                    "$ref": "#/$defs/Types/temp6_Name"
-                },
-                "temp7_Max": {
-                    "$ref": "#/$defs/Types/temp7_Max"
-                },
-                "temp7_Min": {
-                    "$ref": "#/$defs/Types/temp7_Min"
-                },
-                "temp7_Name": {
-                    "$ref": "#/$defs/Types/temp7_Name"
-                },
-                "temp8_Max": {
-                    "$ref": "#/$defs/Types/temp8_Max"
-                },
-                "temp8_Min": {
-                    "$ref": "#/$defs/Types/temp8_Min"
-                },
-                "temp8_Name": {
-                    "$ref": "#/$defs/Types/temp8_Name"
-                },
-                "temp9_Max": {
-                    "$ref": "#/$defs/Types/temp9_Max"
-                },
-                "temp9_Min": {
-                    "$ref": "#/$defs/Types/temp9_Min"
-                },
-                "temp9_Name": {
-                    "$ref": "#/$defs/Types/temp9_Name"
-                },
-                "temp10_Max": {
-                    "$ref": "#/$defs/Types/temp10_Max"
-                },
-                "temp10_Min": {
-                    "$ref": "#/$defs/Types/temp10_Min"
-                },
-                "temp10_Name": {
-                    "$ref": "#/$defs/Types/temp10_Name"
-                },
-                "temp11_Max": {
-                    "$ref": "#/$defs/Types/temp11_Max"
-                },
-                "temp11_Min": {
-                    "$ref": "#/$defs/Types/temp11_Min"
-                },
-                "temp11_Name": {
-                    "$ref": "#/$defs/Types/temp11_Name"
-                },
-                "temp12_Max": {
-                    "$ref": "#/$defs/Types/temp12_Max"
-                },
-                "temp12_Min": {
-                    "$ref": "#/$defs/Types/temp12_Min"
-                },
-                "temp12_Name": {
-                    "$ref": "#/$defs/Types/temp12_Name"
-                },
-                "temp13_Max": {
-                    "$ref": "#/$defs/Types/temp13_Max"
-                },
-                "temp13_Min": {
-                    "$ref": "#/$defs/Types/temp13_Min"
-                },
-                "temp13_Name": {
-                    "$ref": "#/$defs/Types/temp13_Name"
-                },
-                "vout0_Max": {
-                    "$ref": "#/$defs/Types/vout0_Max"
-                },
-                "vout0_Min": {
-                    "$ref": "#/$defs/Types/vout0_Min"
-                },
-                "vout0_Name": {
-                    "$ref": "#/$defs/Types/vout0_Name"
-                },
-                "vout1_Max": {
-                    "$ref": "#/$defs/Types/vout1_Max"
-                },
-                "vout1_Min": {
-                    "$ref": "#/$defs/Types/vout1_Min"
-                },
-                "vout1_Name": {
-                    "$ref": "#/$defs/Types/vout1_Name"
-                },
-                "vout2_Max": {
-                    "$ref": "#/$defs/Types/vout2_Max"
-                },
-                "vout2_Min": {
-                    "$ref": "#/$defs/Types/vout2_Min"
-                },
-                "vout2_Name": {
-                    "$ref": "#/$defs/Types/vout2_Name"
-                },
-                "vout3_Max": {
-                    "$ref": "#/$defs/Types/vout3_Max"
-                },
-                "vout3_Min": {
-                    "$ref": "#/$defs/Types/vout3_Min"
-                },
-                "vout3_Name": {
-                    "$ref": "#/$defs/Types/vout3_Name"
-                },
-                "vout4_Max": {
-                    "$ref": "#/$defs/Types/vout4_Max"
-                },
-                "vout4_Min": {
-                    "$ref": "#/$defs/Types/vout4_Min"
-                },
-                "vout4_Name": {
-                    "$ref": "#/$defs/Types/vout4_Name"
-                },
-                "vout5_Max": {
-                    "$ref": "#/$defs/Types/vout5_Max"
-                },
-                "vout5_Min": {
-                    "$ref": "#/$defs/Types/vout5_Min"
-                },
-                "vout5_Name": {
-                    "$ref": "#/$defs/Types/vout5_Name"
-                },
-                "vout6_Max": {
-                    "$ref": "#/$defs/Types/vout6_Max"
-                },
-                "vout6_Min": {
-                    "$ref": "#/$defs/Types/vout6_Min"
-                },
-                "vout6_Name": {
-                    "$ref": "#/$defs/Types/vout6_Name"
-                },
-                "vout7_Max": {
-                    "$ref": "#/$defs/Types/vout7_Max"
-                },
-                "vout7_Min": {
-                    "$ref": "#/$defs/Types/vout7_Min"
-                },
-                "vout7_Name": {
-                    "$ref": "#/$defs/Types/vout7_Name"
-                },
-                "vout8_Max": {
-                    "$ref": "#/$defs/Types/vout8_Max"
-                },
-                "vout8_Min": {
-                    "$ref": "#/$defs/Types/vout8_Min"
-                },
-                "vout8_Name": {
-                    "$ref": "#/$defs/Types/vout8_Name"
-                },
-                "vout9_Max": {
-                    "$ref": "#/$defs/Types/vout9_Max"
-                },
-                "vout9_Min": {
-                    "$ref": "#/$defs/Types/vout9_Min"
-                },
-                "vout9_Name": {
-                    "$ref": "#/$defs/Types/vout9_Name"
-                },
-                "vout10_Max": {
-                    "$ref": "#/$defs/Types/vout10_Max"
-                },
-                "vout10_Min": {
-                    "$ref": "#/$defs/Types/vout10_Min"
-                },
-                "vout10_Name": {
-                    "$ref": "#/$defs/Types/vout10_Name"
-                },
-                "vout11_Max": {
-                    "$ref": "#/$defs/Types/vout11_Max"
-                },
-                "vout11_Min": {
-                    "$ref": "#/$defs/Types/vout11_Min"
-                },
-                "vout11_Name": {
-                    "$ref": "#/$defs/Types/vout11_Name"
-                },
-                "vout12_Max": {
-                    "$ref": "#/$defs/Types/vout12_Max"
-                },
-                "vout12_Min": {
-                    "$ref": "#/$defs/Types/vout12_Min"
-                },
-                "vout12_Name": {
-                    "$ref": "#/$defs/Types/vout12_Name"
-                },
-                "vout13_Max": {
-                    "$ref": "#/$defs/Types/vout13_Max"
-                },
-                "vout13_Min": {
-                    "$ref": "#/$defs/Types/vout13_Min"
-                },
-                "vout13_Name": {
-                    "$ref": "#/$defs/Types/vout13_Name"
-                },
-                "vout14_Max": {
-                    "$ref": "#/$defs/Types/vout14_Max"
-                },
-                "vout14_Min": {
-                    "$ref": "#/$defs/Types/vout14_Min"
-                },
-                "vout14_Name": {
-                    "$ref": "#/$defs/Types/vout14_Name"
-                },
-                "vout15_Max": {
-                    "$ref": "#/$defs/Types/vout15_Max"
-                },
-                "vout15_Min": {
-                    "$ref": "#/$defs/Types/vout15_Min"
-                },
-                "vout15_Name": {
-                    "$ref": "#/$defs/Types/vout15_Name"
-                },
-                "vout16_Max": {
-                    "$ref": "#/$defs/Types/vout16_Max"
-                },
-                "vout16_Min": {
-                    "$ref": "#/$defs/Types/vout16_Min"
-                },
-                "vout16_Name": {
-                    "$ref": "#/$defs/Types/vout16_Name"
-                },
-                "vout17_Max": {
-                    "$ref": "#/$defs/Types/vout17_Max"
-                },
-                "vout17_Min": {
-                    "$ref": "#/$defs/Types/vout17_Min"
-                },
-                "vout17_Name": {
-                    "$ref": "#/$defs/Types/vout17_Name"
+                    "$ref": "#/$defs/Types/Name"
                 },
                 "fan1_Name": {
-                    "$ref": "#/$defs/Types/fan1_Name"
-                },
-                "curr1_Offset": {
-                    "$ref": "#/$defs/Types/curr1_Offset"
-                },
-                "power1_Offset": {
-                    "$ref": "#/$defs/Types/power1_Offset"
-                },
-                "iout1_Offset": {
-                    "$ref": "#/$defs/Types/iout1_Offset"
-                },
-                "pout1_Offset": {
-                    "$ref": "#/$defs/Types/pout1_Offset"
-                },
-                "pin_Offset": {
-                    "$ref": "#/$defs/Types/pin_Offset"
-                },
-                "curr1_Scale": {
-                    "$ref": "#/$defs/Types/curr1_Scale"
-                },
-                "power1_Scale": {
-                    "$ref": "#/$defs/Types/power1_Scale"
-                },
-                "iout1_Scale": {
-                    "$ref": "#/$defs/Types/iout1_Scale"
-                },
-                "iout2_Scale": {
-                    "$ref": "#/$defs/Types/iout2_Scale"
-                },
-                "iout3_Scale": {
-                    "$ref": "#/$defs/Types/iout3_Scale"
-                },
-                "iout4_Scale": {
-                    "$ref": "#/$defs/Types/iout4_Scale"
-                },
-                "iout5_Scale": {
-                    "$ref": "#/$defs/Types/iout5_Scale"
+                    "$ref": "#/$defs/Types/Name"
                 },
                 "pin_Scale": {
-                    "$ref": "#/$defs/Types/pin_Scale"
+                    "$ref": "#/$defs/Types/ScaleValue"
                 },
                 "pout1_Scale": {
-                    "$ref": "#/$defs/Types/pout1_Scale"
-                },
-                "in0_Scale": {
-                    "$ref": "#/$defs/Types/in0_Scale"
-                },
-                "in1_Scale": {
-                    "$ref": "#/$defs/Types/in1_Scale"
-                },
-                "in2_Scale": {
-                    "$ref": "#/$defs/Types/in2_Scale"
-                },
-                "in3_Scale": {
-                    "$ref": "#/$defs/Types/in3_Scale"
-                },
-                "in4_Scale": {
-                    "$ref": "#/$defs/Types/in4_Scale"
-                },
-                "in5_Scale": {
-                    "$ref": "#/$defs/Types/in5_Scale"
-                },
-                "in6_Scale": {
-                    "$ref": "#/$defs/Types/in6_Scale"
-                },
-                "in7_Scale": {
-                    "$ref": "#/$defs/Types/in7_Scale"
-                },
-                "in_voltage0_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage0_Scale"
-                },
-                "in_voltage1_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage1_Scale"
-                },
-                "in_voltage2_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage2_Scale"
-                },
-                "in_voltage3_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage3_Scale"
-                },
-                "in_voltage4_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage4_Scale"
-                },
-                "in_voltage5_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage5_Scale"
-                },
-                "in_voltage6_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage6_Scale"
-                },
-                "in_voltage7_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage7_Scale"
-                },
-                "in_voltage8_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage8_Scale"
-                },
-                "in_voltage9_Scale": {
-                    "$ref": "#/$defs/Types/in_voltage9_Scale"
+                    "$ref": "#/$defs/Types/ScaleValue"
                 },
                 "PollRate": {
                     "$ref": "#/$defs/Types/PollRate"
@@ -1132,6 +411,9 @@
             "MaxValue": {
                 "type": "number"
             },
+            "MinMaxType": {
+                "type": "number"
+            },
             "Units": {
                 "type": "string",
                 "enum": [
@@ -1156,57 +438,6 @@
             "Name": {
                 "type": "string"
             },
-            "Name1": {
-                "type": "string"
-            },
-            "Name2": {
-                "type": "string"
-            },
-            "Name3": {
-                "type": "string"
-            },
-            "Name4": {
-                "type": "string"
-            },
-            "Name5": {
-                "type": "string"
-            },
-            "Name6": {
-                "type": "string"
-            },
-            "Name7": {
-                "type": "string"
-            },
-            "Name8": {
-                "type": "string"
-            },
-            "Name9": {
-                "type": "string"
-            },
-            "Name10": {
-                "type": "string"
-            },
-            "Name11": {
-                "type": "string"
-            },
-            "Name12": {
-                "type": "string"
-            },
-            "Name13": {
-                "type": "string"
-            },
-            "Name14": {
-                "type": "string"
-            },
-            "Name15": {
-                "type": "string"
-            },
-            "Name16": {
-                "type": "string"
-            },
-            "Name17": {
-                "type": "string"
-            },
             "OffsetValue": {
                 "type": "number"
             },
@@ -1322,718 +553,7 @@
             "HostSMbusIndex": {
                 "type": "number"
             },
-            "pin_Max": {
-                "type": "number"
-            },
-            "pin_Min": {
-                "type": "number"
-            },
-            "pin_Name": {
-                "type": "string"
-            },
-            "maxpin_Name": {
-                "type": "string"
-            },
-            "vin_Max": {
-                "type": "number"
-            },
-            "vin_Min": {
-                "type": "number"
-            },
-            "vin_Name": {
-                "type": "string"
-            },
-            "iin_Name": {
-                "type": "string"
-            },
-            "in0_Max": {
-                "type": "number"
-            },
-            "in0_Min": {
-                "type": "number"
-            },
-            "in0_Name": {
-                "type": "string"
-            },
-            "in1_Max": {
-                "type": "number"
-            },
-            "in1_Min": {
-                "type": "number"
-            },
-            "in1_Name": {
-                "type": "string"
-            },
-            "in2_Max": {
-                "type": "number"
-            },
-            "in2_Name": {
-                "type": "string"
-            },
-            "in3_Max": {
-                "type": "number"
-            },
-            "in3_Name": {
-                "type": "string"
-            },
-            "in4_Max": {
-                "type": "number"
-            },
-            "in4_Name": {
-                "type": "string"
-            },
-            "in5_Max": {
-                "type": "number"
-            },
-            "in5_Name": {
-                "type": "string"
-            },
-            "in6_Name": {
-                "type": "string"
-            },
-            "in7_Name": {
-                "type": "string"
-            },
-            "in_voltage0_Max": {
-                "type": "number"
-            },
-            "in_voltage0_Min": {
-                "type": "number"
-            },
-            "in_voltage0_Name": {
-                "type": "string"
-            },
-            "in_voltage1_Max": {
-                "type": "number"
-            },
-            "in_voltage1_Name": {
-                "type": "string"
-            },
-            "in_voltage2_Max": {
-                "type": "number"
-            },
-            "in_voltage2_Name": {
-                "type": "string"
-            },
-            "in_voltage3_Max": {
-                "type": "number"
-            },
-            "in_voltage3_Name": {
-                "type": "string"
-            },
-            "in_voltage4_Max": {
-                "type": "number"
-            },
-            "in_voltage4_Name": {
-                "type": "string"
-            },
-            "in_voltage5_Max": {
-                "type": "number"
-            },
-            "in_voltage5_Name": {
-                "type": "string"
-            },
-            "in_voltage6_Name": {
-                "type": "string"
-            },
-            "in_voltage7_Name": {
-                "type": "string"
-            },
-            "in_voltage8_Name": {
-                "type": "string"
-            },
-            "in_voltage9_Name": {
-                "type": "string"
-            },
-            "in0_PowerState": {
-                "type": "string"
-            },
-            "in1_PowerState": {
-                "type": "string"
-            },
-            "in2_PowerState": {
-                "type": "string"
-            },
-            "in3_PowerState": {
-                "type": "string"
-            },
-            "in4_PowerState": {
-                "type": "string"
-            },
-            "in5_PowerState": {
-                "type": "string"
-            },
-            "in6_PowerState": {
-                "type": "string"
-            },
-            "in7_PowerState": {
-                "type": "string"
-            },
-            "curr1_Name": {
-                "type": "string"
-            },
-            "curr1_Max": {
-                "type": "number"
-            },
-            "curr1_Min": {
-                "type": "number"
-            },
-            "curr2_Name": {
-                "type": "string"
-            },
-            "curr3_Name": {
-                "type": "string"
-            },
-            "curr4_Name": {
-                "type": "string"
-            },
-            "iin1_Max": {
-                "type": "number"
-            },
-            "iin1_Min": {
-                "type": "number"
-            },
-            "iin1_Name": {
-                "type": "string"
-            },
-            "iin2_Max": {
-                "type": "number"
-            },
-            "iin2_Min": {
-                "type": "number"
-            },
-            "iin2_Name": {
-                "type": "string"
-            },
-            "iin3_Max": {
-                "type": "number"
-            },
-            "iin3_Min": {
-                "type": "number"
-            },
-            "iin3_Name": {
-                "type": "string"
-            },
-            "iout1_Max": {
-                "type": "number"
-            },
-            "iout1_Min": {
-                "type": "number"
-            },
-            "iout1_Name": {
-                "type": "string"
-            },
-            "maxiout1_Name": {
-                "type": "string"
-            },
-            "iout2_Max": {
-                "type": "number"
-            },
-            "iout2_Min": {
-                "type": "number"
-            },
-            "iout2_Name": {
-                "type": "string"
-            },
-            "iout3_Max": {
-                "type": "number"
-            },
-            "iout3_Min": {
-                "type": "number"
-            },
-            "iout3_Name": {
-                "type": "string"
-            },
-            "iout4_Max": {
-                "type": "number"
-            },
-            "iout4_Min": {
-                "type": "number"
-            },
-            "iout4_Name": {
-                "type": "string"
-            },
-            "iout5_Max": {
-                "type": "number"
-            },
-            "iout5_Min": {
-                "type": "number"
-            },
-            "iout5_Name": {
-                "type": "string"
-            },
-            "pin1_Max": {
-                "type": "number"
-            },
-            "pin1_Min": {
-                "type": "number"
-            },
-            "pin1_Name": {
-                "type": "string"
-            },
-            "pin2_Max": {
-                "type": "number"
-            },
-            "pin2_Min": {
-                "type": "number"
-            },
-            "pin2_Name": {
-                "type": "string"
-            },
-            "pin3_Max": {
-                "type": "number"
-            },
-            "pin3_Min": {
-                "type": "number"
-            },
-            "pin3_Name": {
-                "type": "string"
-            },
-            "pout1_Max": {
-                "type": "number"
-            },
-            "pout1_Min": {
-                "type": "number"
-            },
-            "pout1_Name": {
-                "type": "string"
-            },
-            "pout2_Max": {
-                "type": "number"
-            },
-            "pout2_Min": {
-                "type": "number"
-            },
-            "pout2_Name": {
-                "type": "string"
-            },
-            "pout3_Max": {
-                "type": "number"
-            },
-            "pout3_Min": {
-                "type": "number"
-            },
-            "pout3_Name": {
-                "type": "string"
-            },
-            "power1_Max": {
-                "type": "number"
-            },
-            "power1_Name": {
-                "type": "string"
-            },
-            "power2_Max": {
-                "type": "number"
-            },
-            "power2_Name": {
-                "type": "string"
-            },
-            "power3_Max": {
-                "type": "number"
-            },
-            "power3_Name": {
-                "type": "string"
-            },
-            "power4_Max": {
-                "type": "number"
-            },
-            "power4_Name": {
-                "type": "string"
-            },
-            "power5_Max": {
-                "type": "number"
-            },
-            "power5_Name": {
-                "type": "string"
-            },
-            "power6_Name": {
-                "type": "string"
-            },
-            "power7_Name": {
-                "type": "string"
-            },
-            "power8_Name": {
-                "type": "string"
-            },
-            "power9_Name": {
-                "type": "string"
-            },
-            "temp1_Max": {
-                "type": "number"
-            },
-            "temp1_Min": {
-                "type": "number"
-            },
-            "temp1_Name": {
-                "type": "string"
-            },
-            "temp2_Max": {
-                "type": "number"
-            },
-            "temp2_Min": {
-                "type": "number"
-            },
-            "temp2_Name": {
-                "type": "string"
-            },
-            "temp3_Max": {
-                "type": "number"
-            },
-            "temp3_Min": {
-                "type": "number"
-            },
-            "temp3_Name": {
-                "type": "string"
-            },
-            "temp4_Max": {
-                "type": "number"
-            },
-            "temp4_Min": {
-                "type": "number"
-            },
-            "temp4_Name": {
-                "type": "string"
-            },
-            "temp5_Max": {
-                "type": "number"
-            },
-            "temp5_Min": {
-                "type": "number"
-            },
-            "temp5_Name": {
-                "type": "string"
-            },
-            "temp6_Max": {
-                "type": "number"
-            },
-            "temp6_Min": {
-                "type": "number"
-            },
-            "temp6_Name": {
-                "type": "string"
-            },
-            "temp7_Max": {
-                "type": "number"
-            },
-            "temp7_Min": {
-                "type": "number"
-            },
-            "temp7_Name": {
-                "type": "string"
-            },
-            "temp8_Max": {
-                "type": "number"
-            },
-            "temp8_Min": {
-                "type": "number"
-            },
-            "temp8_Name": {
-                "type": "string"
-            },
-            "temp9_Max": {
-                "type": "number"
-            },
-            "temp9_Min": {
-                "type": "number"
-            },
-            "temp9_Name": {
-                "type": "string"
-            },
-            "temp10_Max": {
-                "type": "number"
-            },
-            "temp10_Min": {
-                "type": "number"
-            },
-            "temp10_Name": {
-                "type": "string"
-            },
-            "temp11_Max": {
-                "type": "number"
-            },
-            "temp11_Min": {
-                "type": "number"
-            },
-            "temp11_Name": {
-                "type": "string"
-            },
-            "temp12_Max": {
-                "type": "number"
-            },
-            "temp12_Min": {
-                "type": "number"
-            },
-            "temp12_Name": {
-                "type": "string"
-            },
-            "temp13_Max": {
-                "type": "number"
-            },
-            "temp13_Min": {
-                "type": "number"
-            },
-            "temp13_Name": {
-                "type": "string"
-            },
-            "vout0_Max": {
-                "type": "number"
-            },
-            "vout0_Min": {
-                "type": "number"
-            },
-            "vout0_Name": {
-                "type": "string"
-            },
-            "vout1_Max": {
-                "type": "number"
-            },
-            "vout1_Min": {
-                "type": "number"
-            },
-            "vout1_Name": {
-                "type": "string"
-            },
-            "vout2_Max": {
-                "type": "number"
-            },
-            "vout2_Min": {
-                "type": "number"
-            },
-            "vout2_Name": {
-                "type": "string"
-            },
-            "vout3_Max": {
-                "type": "number"
-            },
-            "vout3_Min": {
-                "type": "number"
-            },
-            "vout3_Name": {
-                "type": "string"
-            },
-            "vout4_Max": {
-                "type": "number"
-            },
-            "vout4_Min": {
-                "type": "number"
-            },
-            "vout4_Name": {
-                "type": "string"
-            },
-            "vout5_Max": {
-                "type": "number"
-            },
-            "vout5_Min": {
-                "type": "number"
-            },
-            "vout5_Name": {
-                "type": "string"
-            },
-            "vout6_Max": {
-                "type": "number"
-            },
-            "vout6_Min": {
-                "type": "number"
-            },
-            "vout6_Name": {
-                "type": "string"
-            },
-            "vout7_Max": {
-                "type": "number"
-            },
-            "vout7_Min": {
-                "type": "number"
-            },
-            "vout7_Name": {
-                "type": "string"
-            },
-            "vout8_Max": {
-                "type": "number"
-            },
-            "vout8_Min": {
-                "type": "number"
-            },
-            "vout8_Name": {
-                "type": "string"
-            },
-            "vout9_Max": {
-                "type": "number"
-            },
-            "vout9_Min": {
-                "type": "number"
-            },
-            "vout9_Name": {
-                "type": "string"
-            },
-            "vout10_Max": {
-                "type": "number"
-            },
-            "vout10_Min": {
-                "type": "number"
-            },
-            "vout10_Name": {
-                "type": "string"
-            },
-            "vout11_Max": {
-                "type": "number"
-            },
-            "vout11_Min": {
-                "type": "number"
-            },
-            "vout11_Name": {
-                "type": "string"
-            },
-            "vout12_Max": {
-                "type": "number"
-            },
-            "vout12_Min": {
-                "type": "number"
-            },
-            "vout12_Name": {
-                "type": "string"
-            },
-            "vout13_Max": {
-                "type": "number"
-            },
-            "vout13_Min": {
-                "type": "number"
-            },
-            "vout13_Name": {
-                "type": "string"
-            },
-            "vout14_Max": {
-                "type": "number"
-            },
-            "vout14_Min": {
-                "type": "number"
-            },
-            "vout14_Name": {
-                "type": "string"
-            },
-            "vout15_Max": {
-                "type": "number"
-            },
-            "vout15_Min": {
-                "type": "number"
-            },
-            "vout15_Name": {
-                "type": "string"
-            },
-            "vout16_Max": {
-                "type": "number"
-            },
-            "vout16_Min": {
-                "type": "number"
-            },
-            "vout16_Name": {
-                "type": "string"
-            },
-            "vout17_Max": {
-                "type": "number"
-            },
-            "vout17_Min": {
-                "type": "number"
-            },
-            "vout17_Name": {
-                "type": "string"
-            },
-            "fan1_Name": {
-                "type": "string"
-            },
-            "curr1_Offset": {
-                "type": "number"
-            },
-            "power1_Offset": {
-                "type": "number"
-            },
-            "iout1_Offset": {
-                "type": "number"
-            },
-            "pout1_Offset": {
-                "type": "number"
-            },
-            "pin_Offset": {
-                "type": "number"
-            },
-            "curr1_Scale": {
-                "type": "number"
-            },
-            "power1_Scale": {
-                "type": "number"
-            },
-            "iout1_Scale": {
-                "type": "number"
-            },
-            "iout2_Scale": {
-                "type": "number"
-            },
-            "iout3_Scale": {
-                "type": "number"
-            },
-            "iout4_Scale": {
-                "type": "number"
-            },
-            "iout5_Scale": {
-                "type": "number"
-            },
-            "pin_Scale": {
-                "type": "number"
-            },
-            "pout1_Scale": {
-                "type": "number"
-            },
-            "in0_Scale": {
-                "type": "number"
-            },
-            "in1_Scale": {
-                "type": "number"
-            },
-            "in2_Scale": {
-                "type": "number"
-            },
-            "in3_Scale": {
-                "type": "number"
-            },
-            "in4_Scale": {
-                "type": "number"
-            },
-            "in5_Scale": {
-                "type": "number"
-            },
-            "in6_Scale": {
-                "type": "number"
-            },
-            "in7_Scale": {
-                "type": "number"
-            },
-            "in_voltage0_Scale": {
-                "type": "number"
-            },
-            "in_voltage1_Scale": {
-                "type": "number"
-            },
-            "in_voltage2_Scale": {
-                "type": "number"
-            },
-            "in_voltage3_Scale": {
-                "type": "number"
-            },
-            "in_voltage4_Scale": {
-                "type": "number"
-            },
-            "in_voltage5_Scale": {
-                "type": "number"
-            },
-            "in_voltage6_Scale": {
-                "type": "number"
-            },
-            "in_voltage7_Scale": {
-                "type": "number"
-            },
-            "in_voltage8_Scale": {
-                "type": "number"
-            },
-            "in_voltage9_Scale": {
+            "OffsetType": {
                 "type": "number"
             },
             "PollRate": {