{ "general": { "name": { "default": "interpolation configuration", "rules": { "type": "string", "description": "A human-readable name or label for this interpolation configuration." } }, "id": { "default": null, "rules": { "type": "string", "nullable": true, "description": "A unique identifier for this configuration. If not provided, defaults to null." } }, "unit": { "default": "unitless", "rules": { "type": "string", "description": "The unit used for the interpolated values (e.g., 'meters', 'seconds', 'unitless')." } }, "logging": { "logLevel": { "default": "info", "rules": { "type": "enum", "values": [ { "value": "debug", "description": "Log messages are printed for debugging purposes." }, { "value": "info", "description": "Informational messages are printed." }, { "value": "warn", "description": "Warning messages are printed." }, { "value": "error", "description": "Error messages are printed." } ] } }, "enabled": { "default": true, "rules": { "type": "boolean", "description": "Indicates whether logging is active. If true, log messages will be generated." } } } }, "functionality": { "softwareType": { "default": "interpolation", "rules": { "type": "enum", "values": [ { "value": "interpolation", "description": "Specifies this component as an interpolation engine." } ] } }, "role": { "default": "interpolator", "rules": { "type": "string", "description": "Indicates the role of this configuration (e.g., 'Interpolator', 'DataCurve', etc.)." } } }, "interpolation": { "enabled": { "default": true, "rules": { "type": "boolean", "description": "Flag to enable/disable interpolation." } }, "type": { "default": "monotone_cubic_spline", "rules": { "type": "enum", "values": [ { "value": "cubic_spline", "description": "Standard cubic spline interpolation (natural boundary)." }, { "value": "monotone_cubic_spline", "description": "Monotonic cubic spline interpolation (e.g., Fritsch-Carlson)." }, { "value": "linear", "description": "Basic linear interpolation between data points." } ], "description": "Specifies the default interpolation method." } }, "tension": { "default": 0.5, "rules": { "type": "number", "min": 0, "max": 1, "description": "Tension parameter (0–1) for spline methods like 'cardinal'." } } }, "normalization": { "enabled": { "default": true, "rules": { "type": "boolean", "description": "Flag to enable/disable normalization of input data." } }, "normalizationType": { "default": "minmax", "rules": { "type": "enum", "values": [ { "value": "minmax", "description": "Min-max normalization (default)." }, { "value": "zscore", "description": "Z-score normalization." } ], "description": "Specifies the type of normalization to apply." } }, "parameters": { "default": {}, "rules": { "type": "object", "schema": { "min": { "default": 0, "rules": { "type": "number", "description": "Minimum value for normalization." } }, "max": { "default": 1000, "rules": { "type": "number", "description": "Maximum value for normalization." } }, "curvePoints": { "default": 10, "rules": { "type": "number", "description": "Number of points in the normalization curve." } } }, "description": "Normalization parameters (e.g., 'min', 'max', 'mean', 'std')." } } }, "curve": { "default": { "1": { "x": [ 1, 2, 3, 4, 5 ], "y": [ 10, 20, 30, 40, 50 ] } }, "rules": { "type": "curve", "description": "Explicitly enumerated dimension keys (no wildcard)." } } }