{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/chemaxon/json-schema/chemaxon-reaction-request-react-request-options-schema.json",
  "title": "ReactionRequestReactRequestOptions",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/chemaxon-reactor-openapi.yml#/components/schemas/ReactionRequestReactRequestOptions",
  "properties": {
    "exclude": {
      "type": "string",
      "description": "Exclude rule. Setting this option overwrites the rule specified in the EXCLUDE RDF/ MRV tag on the reaction molecule."
    },
    "listOfReactants": {
      "type": "array",
      "description": "The list of reactant lists.",
      "items": {
        "type": "array",
        "items": {
          "$ref": "#/$defs/IdStructure"
        }
      }
    },
    "options": {
      "$ref": "#/$defs/ReactRequestOptions"
    },
    "reaction": {
      "type": "string",
      "description": "The reaction with reaction rules set in RDF/MRV tags or specified in a string."
    },
    "reactivity": {
      "type": "string",
      "description": "Reactivity rule. Setting this option overwrites the rule specified in the REACTIVITY RDF/ MRV tag on the reaction molecule."
    },
    "selectivity": {
      "type": "string",
      "description": "Selectivity rule. Setting this option overwrites the rule specified in the SELECTIVITY RDF/ MRV tag on the reaction molecule."
    },
    "standardization": {
      "type": "string",
      "description": "Reactant standardization config. Setting this option overwrites the values specified in the STANDARDIZATION RDF/ MRV tag on the reaction molecule."
    },
    "tolerance": {
      "type": "array",
      "description": "Tolerance values for selectivity. Setting this option overwrites the values specified in the TOLERANCE RDF/ MRV tag on the reaction molecule.",
      "items": {
        "type": "number",
        "format": "double"
      }
    }
  },
  "required": [
    "listOfReactants",
    "reaction"
  ],
  "$defs": {
    "IdStructure": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The structure id."
        },
        "structure": {
          "type": "string",
          "description": "The input structure."
        }
      },
      "required": [
        "structure"
      ]
    },
    "ReactRequestOptions": {
      "description": "Options to set for reactor.",
      "properties": {
        "autoDetectReactantOrder": {
          "type": "boolean",
          "default": true,
          "description": "If switched on, the order of reactant lists is checked and automatically fixed based on how much they match the reactants in the schema. Switching it off results in better performance. "
        },
        "combinationMode": {
          "type": "string",
          "default": "sequential",
          "description": "Processing mode of reactants, it can be sequential or combinatorial.",
          "enum": [
            "combinatorial",
            "sequential"
          ]
        },
        "copyAllReactantProperties": {
          "type": "boolean",
          "default": false,
          "description": "If true, then copies all reactant properties to output products/reactions."
        },
        "copyPropertyByReactant": {
          "type": "array",
          "description": "Copies specified properties of specified reactants to output structure.",
          "items": {
            "$ref": "#/$defs/RequestCopyPropertyByReactant"
          }
        },
        "copyPropertyWithPattern": {
          "type": "array",
          "description": "Copies properties specified by patterns to output structure. The individual property field can be defined here according to the general pattern:\n\n<propertyName>=[<text>*#{<moleculeID>.<propertyID>}]*<text>*",
          "items": {
            "type": "string"
          }
        },
        "generateMinorProduct": {
          "type": "boolean",
          "default": false,
          "description": "If true, then products lists are not filtered out by the selectivity rule, but they are tagged as minor products. The option has NO effect in fused reaction output mode."
        },
        "ignoreErrors": {
          "type": "boolean",
          "deprecated": true,
          "description": "Deprecated. Not used anymore.",
          "writeOnly": true
        },
        "ignoreReactivity": {
          "type": "boolean",
          "deprecated": true,
          "description": "Deprecated as the name is misleading. Ignores both the reactivity and exclude rules. Use \"ignoreReactivityAndExclude\" instead.",
          "writeOnly": true
        },
        "ignoreReactivityAndExclude": {
          "type": "boolean",
          "default": false,
          "description": "If true, then ignores reactivity and exclude rules."
        },
        "ignoreSelectivity": {
          "type": "boolean",
          "default": false,
          "description": "If true, then ignores selectivity rule."
        },
        "ignoreStandardization": {
          "type": "boolean",
          "default": false,
          "description": "If true, then standardizes defined on the molecules won't be used."
        },
        "ignoreTolerance": {
          "type": "boolean",
          "default": false,
          "description": "If true, then ignores selectivity tolerance."
        },
        "isReversed": {
          "type": "boolean",
          "deprecated": true,
          "description": "Deprecated. Use \"reversed\" instead.",
          "writeOnly": true
        },
        "mappingStyle": {
          "type": "string",
          "default": "none",
          "description": "The mapping style of the result: none, changing, complete or matching. This option works as expected ONLY in case of reaction.",
          "enum": [
            "none",
            "changing",
            "complete",
            "matching"
          ]
        },
        "markReactionCenter": {
          "type": "boolean",
          "default": false,
          "description": "If true, bonds in reaction are marked if they were created, broken or changed during the reaction. ONLY works for reaction result type!"
        },
        "outputFormat": {
          "type": "string",
          "description": "The output format and options."
        },
        "productIndexes": {
          "type": "array",
          "description": "The product indexes (1-based) to be returned.",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "ratio": {
          "type": "array",
          "description": "Ratio of the reactans. The length of the list should be equal to the number of reactants in the reaction. If there are more than one reactants in the reaction, then one of the reactant ratios should be 1.",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "reactantInputFormat": {
          "type": "string",
          "description": "The input format and options for reactants."
        },
        "resultType": {
          "type": "string",
          "default": "product",
          "description": "The returned type, like product, reaction or fused_reaction.",
          "enum": [
            "product",
            "reaction",
            "fused_reaction"
          ]
        },
        "reversed": {
          "type": "boolean",
          "default": false,
          "description": "If true, the reaction is to be processed in reversed direction, that is, the product and reactant sides are swapped."
        },
        "showUnsuccessfulReactions": {
          "type": "boolean",
          "default": false,
          "description": "If true, then unsuccessful reactions will be shown with empty products side in the output. This options works ONLY in case of reaction and fused reaction result type."
        },
        "synthesisCode": {
          "$ref": "#/$defs/RequestSynthesisCode"
        },
        "unambiguousOnly": {
          "type": "boolean",
          "default": false,
          "description": "If true, it processes unambiguous reactions only, where each reactant has a single reaction site."
        }
      }
    },
    "RequestCopyPropertyByReactant": {
      "properties": {
        "copyAs": {
          "type": "string",
          "description": "The selected property can be copied with a different name to the output."
        },
        "copyFrom": {
          "type": "integer",
          "format": "int32",
          "description": "Select the reactant that has the property that needs to be copied."
        },
        "propertyName": {
          "type": "string",
          "description": "The property of the selected reactant to be copied to the output."
        }
      },
      "required": [
        "copyFrom",
        "propertyName"
      ]
    },
    "RequestSynthesisCode": {
      "description": "Synthesis code generator.",
      "properties": {
        "fieldNameInOutputSource": {
          "type": "string",
          "description": "The synthesis code will be written to this field of the output file."
        },
        "fieldNameInReactants": {
          "type": "array",
          "description": "List of property fields of reactants.",
          "items": {
            "type": "string"
          }
        },
        "fieldNameInSchema": {
          "type": "string",
          "description": "A property field of the reaction."
        }
      },
      "required": [
        "fieldNameInOutputSource",
        "fieldNameInReactants",
        "fieldNameInSchema"
      ]
    }
  }
}