{"contract":"aspimatch.compatibility-rules","schemaVersion":"1.3.0","implementation":"https://aspimatch.fr/methodologie/","statuses":["compatible","incompatible","insufficient_data"],"globalAggregation":"incompatible if one axis fails; otherwise insufficient_data if one axis lacks evidence; otherwise compatible","axes":[{"id":"mechanical","requiredInputs":["machine.outletDiameterMm","system.hoseInnerDiameterMm","system.adapterStatus"],"rule":"A documented or physically checked exact machine-to-hose connection is required. Equal or close nominal diameters never establish the connection by themselves. The legacy field system.adapterStatus carries this evidence state, whether the connection is direct or uses an adapter.","boundary":"This axis covers only the machine-to-hose junction. It does not prove the rest of the connection chain, airflow or filtration."},{"id":"airflow","requiredInputs":["machine.requiredAirflowAtCaptureM3h","system.availableAirflowAtMachineM3h","safetyMarginRatio"],"rule":"Available airflow must be greater than or equal to required airflow multiplied by the declared safety margin.","boundary":"Product maximum airflow is not substituted for airflow available at the machine."},{"id":"filtration","requiredInputs":["machine.requiredFilterClass","system.filterClass"],"rule":"Declared class is compared in the ordered set L, M, H against a requirement supplied by the caller.","boundary":"The required class is never inferred from the material name by this contract."}],"limitations":["The top-level status summarizes exactly these three checks; it is not a global equipment, workplace, exposure, ATEX or regulatory compatibility verdict.","Rules describe a technical preselection and do not certify a workplace, exposure, ATEX situation or regulatory compliance.","Missing or non-comparable inputs produce insufficient_data rather than an estimate."]}
