{ "general": { "name": { "default": "Monster Configuration", "rules": { "type": "string", "description": "A human-readable name or label for this 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 for this configuration (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": "monster", "rules": { "type": "string", "description": "Specified software type for this configuration." } }, "role": { "default": "samplingCabinet", "rules": { "type": "string", "description": "Indicates the role this configuration plays (e.g., sensor, controller, etc.)." } } }, "asset": { "uuid": { "default": null, "rules": { "type": "string", "nullable": true, "description": "Asset tag number which is a universally unique identifier for this asset. May be null if not assigned." } }, "geoLocation": { "default": { "x": 0, "y": 0, "z": 0 }, "rules": { "type": "object", "description": "An object representing the asset's physical coordinates or location.", "schema": { "x": { "default": 0, "rules": { "type": "number", "description": "X coordinate of the asset's location." } }, "y": { "default": 0, "rules": { "type": "number", "description": "Y coordinate of the asset's location." } }, "z": { "default": 0, "rules": { "type": "number", "description": "Z coordinate of the asset's location." } } } } }, "supplier": { "default": "Unknown", "rules": { "type": "string", "description": "The supplier or manufacturer of the asset." } }, "type": { "default": "sensor", "rules": { "type": "enum", "values": [ { "value": "sensor", "description": "A device that detects or measures a physical property and responds to it (e.g. temperature sensor)." } ] } }, "subType": { "default": "pressure", "rules": { "type": "string", "description": "A more specific classification within 'type'. For example, 'pressure' for a pressure sensor." } }, "model": { "default": "Unknown", "rules": { "type": "string", "description": "A user-defined or manufacturer-defined model identifier for the asset." } }, "emptyWeightBucket": { "default": 3, "rules": { "type": "number", "description": "The weight of the empty bucket in kilograms." } } }, "constraints": { "samplingtime": { "default": 0, "rules": { "type": "number", "description": "The time interval between sampling events (in seconds) if not using a flow meter." } }, "samplingperiod": { "default": 24, "rules": { "type": "number", "description": "The fixed period in hours in which a composite sample is collected." } }, "minVolume": { "default": 5, "rules": { "type": "number", "min": 5, "description": "The minimum volume in liters." } }, "maxWeight": { "default": 23, "rules": { "type": "number", "max": 23, "description": "The maximum weight in kilograms." } }, "subSampleVolume": { "default": 50, "rules": { "type": "number", "min": 50, "max": 50, "description": "The volume of each sub-sample in milliliters." } }, "storageTemperature": { "default": { "min": 1, "max": 5 }, "rules": { "type": "object", "description": "Acceptable storage temperature range for samples in degrees Celsius.", "schema": { "min": { "default": 1, "rules": { "type": "number", "min": 1, "description": "Minimum acceptable storage temperature in degrees Celsius." } }, "max": { "default": 5, "rules": { "type": "number", "max": 5, "description": "Maximum acceptable storage temperature in degrees Celsius." } } } } }, "flowmeter": { "default": true, "rules": { "type": "boolean", "description": "Indicates whether a flow meter is used for proportional sampling." } }, "closedSystem": { "default": false, "rules": { "type": "boolean", "description": "Indicates if the sampling system is closed (true) or open (false)." } }, "intakeSpeed": { "default": 0.3, "rules": { "type": "number", "description": "Minimum intake speed in meters per second." } }, "intakeDiameter": { "default": 12, "rules": { "type": "number", "description": "Minimum inner diameter of the intake tubing in millimeters." } } } }