{"rules":[{"flag":"match.aromatic_valence","area":"match","summary":"Total valence `v` on aromatic atoms","values":{"kekule_total":"aromatic C in benzene has v4 (RDKit/Daylight)","aromatic_bond_as_one":"aromatic bonds count 1: benzene C is v3 (chematic)","other":"neither"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic (molecule-first generator) 2026-10-03","refs":[]},"cases":[{"id":"benzene_v4","op":"match","query":"[c;v4]","mol":"c1ccccc1","expect":{"kekule_total":"match:6","aromatic_bond_as_one":"match:0","other":"match:0"}},{"id":"benzene_v3","op":"match","query":"[c;v3]","mol":"c1ccccc1","expect":{"kekule_total":"match:0","aromatic_bond_as_one":"match:6","other":"match:0"}},{"id":"pyrrole_n_v3","op":"match","query":"[n;v3]","mol":"c1cc[nH]c1","expect":{"kekule_total":"match:1","aromatic_bond_as_one":"*","other":"*"}}]},{"flag":"match.aromaticity_exocyclic_carbonyl","area":"match","summary":"Ring carbon with exocyclic C=O (4-pyranone) perceived aromatic?","values":{"daylight_like":"4-pyranone ring aromatic (5 aromatic ring atoms)","cdk_model":"CDK ElectronDonation.cdk(): not aromatic (BioTransformer B0 match prep)"},"processing":"Toolkit aromaticity at match time. BioTransformer re-perceives with the CDK model before SMIRKS matching.","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md B0"]},"cases":[{"id":"pyranone_c","op":"match","query":"c","mol":"O=C1C=COC=C1","expect":{"daylight_like":"match:5","cdk_model":"match:0"}},{"id":"tropone_c","op":"match","query":"c","mol":"O=C1C=CC=CC=C1","expect":{"daylight_like":"match:7","cdk_model":"match:0"}},{"id":"benzene_control","op":"match","query":"c","mol":"c1ccccc1","expect":{"daylight_like":"match:6","cdk_model":"match:6"}}]},{"flag":"match.atom_chirality","area":"match","summary":"Tetrahedral `@`/`@@` in queries","values":{"ignored":"chirality ignored (RDKit default useChirality=False)","enforced":"chirality must agree; unspecified mol fails"},"processing":"RDKit adapter option use_chirality=True switches to enforced.","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"opposite","op":"match","query":"[C@@H](F)(Cl)Br","mol":"[C@H](F)(Cl)Br","expect":{"ignored":"match:1","enforced":"match:0"}},{"id":"unspecified_mol","op":"match","query":"[C@H](F)(Cl)Br","mol":"FC(Cl)Br","expect":{"ignored":"match:1","enforced":"match:0"}}]},{"flag":"match.bond_stereo","area":"match","summary":"Directional bonds `/` `\\` in queries","values":{"ignored":"cis/trans ignored","enforced":"must agree; unspecified mol fails","branch_direction_inverted":"enforced, but a `/` `\\` inside a branch on the first stereo atom is read inverted (chematic 1.0.30): C(/F)=C/F (cis) matches trans"},"processing":null,"provenance":{"discovered":"autoconf stability check 2026-10-03: chematic result changed under reordered SMILES","refs":[]},"cases":[{"id":"trans_vs_cis","op":"match","query":"F/C=C/F","mol":"F/C=C\\F","expect":{"ignored":"match:+","enforced":"match:0","branch_direction_inverted":"match:0"}},{"id":"trans_vs_unspecified","op":"match","query":"F/C=C/F","mol":"FC=CF","expect":{"ignored":"match:+","enforced":"match:0","branch_direction_inverted":"match:0"}},{"id":"trans_vs_cis_branch_spelling","op":"match","query":"F/C=C/F","mol":"C(/F)=C/F","note":"same molecule as F/C=C\\F","expect":{"ignored":"match:+","enforced":"match:0","branch_direction_inverted":"match:+"}},{"id":"cis_all_spellings","op":"match","query":"F/C=C/F","mol":"F/C=C\\F","note":"order-dependence surfaced explicitly: all four spell the cis isomer","expect":{"ignored":"match:+","enforced":"match:0","branch_direction_inverted":"re:match:0 / match:[1-9][0-9]*"}},{"id":"trans_vs_trans_branch_spelling","op":"match","query":"F/C=C/F","mol":"C(/F)=C\\F","note":"same molecule as F/C=C/F","expect":{"ignored":"match:+","enforced":"match:+","branch_direction_inverted":"match:0"}}]},{"flag":"match.compound_bond_kekule","area":"match","summary":"Bare `-`/`=` inside a compound bond expression (`@-`, `-;@`) vs aromatic bonds","values":{"aromatic_aware":"compound `-` still excludes aromatic bonds (Daylight)","kekule_order":"compound `-`/`=` compare the stored Kekule order (Ambit SMIRKS matcher, A7c)"},"processing":"Engine config: xenosmarts profile flag compound_bond_kekule. CDK SmartsPattern (gate) is aromatic_aware; only Ambit's SMIRKS matcher shows kekule_order.","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A7c","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A7c"]},"cases":[{"id":"ring_single_benzene","op":"match","query":"[#6]@-[#6]","mol":"c1ccccc1","expect":{"aromatic_aware":"match:0","kekule_order":"match:+"}},{"id":"single_and_ring_benzene","op":"match","query":"[#6]-;@[#6]","mol":"c1ccccc1","expect":{"aromatic_aware":"match:0","kekule_order":"match:+"}},{"id":"double_and_ring_benzene","op":"match","query":"[#6]=;@[#6]","mol":"c1ccccc1","expect":{"aromatic_aware":"match:0","kekule_order":"match:+"}},{"id":"ring_bond_control","op":"match","query":"[#6]@[#6]","mol":"c1ccccc1","expect":{"aromatic_aware":"match:+","kekule_order":"match:+"}}]},{"flag":"match.count_semantics","area":"match","summary":"What a match count counts when one atom set matches in several orders","values":{"unique_atom_sets":"one per atom set (RDKit uniquify, chematic, Open Babel GetUMapList, CDK uniqueAtoms)","ordered_mappings":"one per ordered mapping: CC on ethane = 2 (xenosmarts Matcher.count)"},"processing":"Adapter contract is unique atom sets; xenosmarts exposes only an ordered count, so this flag records the API semantics.","provenance":{"discovered":"sweep rdkit vs xenosmarts 2026-10-03","refs":[]},"cases":[{"id":"ethane_CC","op":"match","query":"CC","mol":"CC","expect":{"unique_atom_sets":"match:1","ordered_mappings":"match:2"}},{"id":"benzene_ring6","op":"match","query":"c1ccccc1","mol":"c1ccccc1","expect":{"unique_atom_sets":"match:1","ordered_mappings":"match:12"}},{"id":"asymmetric_control","op":"match","query":"CO","mol":"CCO","expect":{"unique_atom_sets":"match:1","ordered_mappings":"match:1"}}]},{"flag":"match.degree_with_explicit_h","area":"match","summary":"`D<n>` when H are explicit atoms","values":{"counts_h_atoms":"D counts explicit H neighbors ([CD1] fails on ethane+AddHs)","heavy_only":"D ignores H atoms"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"CD1_explicit","op":"match","query":"[CD1]","mol":"CC","explicit_h":true,"expect":{"counts_h_atoms":"match:0","heavy_only":"match:2"}},{"id":"CD1_implicit","op":"match","query":"[CD1]","mol":"CC","expect":{"counts_h_atoms":"match:2","heavy_only":"match:2"}}]},{"flag":"match.directional_bond","area":"match","summary":"Directional `/` `\\` bonds in a query without stereo context","values":{"single_or_aromatic":"`/` matches single and aromatic bonds (RDKit, CDK)","single_only":"`/` matches single bonds only (Open Babel, pyref)","never_without_stereo":"`/` matches nothing unless stereo is defined, even C/C on ethane (chematic)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs openbabel 2026-10-03","refs":[]},"cases":[{"id":"slash_benzene","op":"match","query":"c/c","mol":"c1ccccc1","expect":{"single_or_aromatic":"match:6","single_only":"match:0","never_without_stereo":"match:0"}},{"id":"slash_ethane","op":"match","query":"C/C","mol":"CC","expect":{"single_or_aromatic":"match:+","single_only":"match:+","never_without_stereo":"match:0"}},{"id":"backslash_benzene","op":"match","query":"c\\c","mol":"c1ccccc1","expect":{"single_or_aromatic":"match:6","single_only":"match:0","never_without_stereo":"match:0"}}]},{"flag":"match.double_bond_vs_aromatic","area":"match","summary":"Explicit `=` against an aromatic bond","values":{"excludes_aromatic":"Daylight: `=` never matches aromatic","includes_aromatic":"`=` matches Kekule double of aromatic ring","kekule_input_only":"`=` matches aromatic bonds only when the molecule was written Kekule (pyref with double_excludes_aromatic=False)"},"processing":"Engine config: pyref Profile.double_excludes_aromatic","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"double_on_benzene","op":"match","query":"c=c","mol":"c1ccccc1","expect":{"excludes_aromatic":"match:0","includes_aromatic":"match:+","kekule_input_only":"match:0"}},{"id":"double_on_kekule_benzene","op":"match","query":"[#6]=[#6]","mol":"C1=CC=CC=C1","expect":{"excludes_aromatic":"match:0","includes_aromatic":"match:+","kekule_input_only":"match:+"}},{"id":"double_control_ethene","op":"match","query":"[#6]=[#6]","mol":"C=C","expect":{"excludes_aromatic":"match:+","includes_aromatic":"match:+","kekule_input_only":"match:+"}}]},{"flag":"match.h_atom_query","area":"match","summary":"Graph `[H]` atom in a query (`[C][H]`) vs implicit / explicit H","values":{"explicit_only":"matches only after AddHs","implicit_matchable":"matches implicit H too (Open Babel)","bracket_h_not_atom":"never matches as an atom, even with AddHs (chematic)"},"processing":"explicit_h=True means the adapter adds explicit H to the molecule before matching.","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md (Explicit H)"]},"cases":[{"id":"CH_implicit","op":"match","query":"[C][H]","mol":"C","expect":{"explicit_only":"match:0","implicit_matchable":"match:4","bracket_h_not_atom":"match:0"}},{"id":"CH_explicit","op":"match","query":"[C][H]","mol":"C","explicit_h":true,"expect":{"explicit_only":"match:4","implicit_matchable":"match:4","bracket_h_not_atom":"match:0"}},{"id":"hash1_explicit","op":"match","query":"[#1]","mol":"C","explicit_h":true,"expect":{"explicit_only":"match:4","implicit_matchable":"match:4","bracket_h_not_atom":"match:4"}}]},{"flag":"match.h_count_with_explicit_h","area":"match","summary":"`H<n>` total H count when H are explicit atoms","values":{"counts_h_atoms":"[CH3] matches ethane after AddHs","ignores_h_atoms":"explicit H not counted"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md"]},"cases":[{"id":"CH3_explicit","op":"match","query":"[CH3]","mol":"CC","explicit_h":true,"expect":{"counts_h_atoms":"match:2","ignores_h_atoms":"match:0"}}]},{"flag":"match.implicit_h_lowercase_h","area":"match","summary":"Bare `h` (implicit H, default at least one)","values":{"at_least_one":"[Ch] matches CH3","no_match":"[Ch] does not match implicit-H methyl (chematic, Open Babel)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"h_bare_ethane","op":"match","query":"[Ch]","mol":"CC","expect":{"at_least_one":"match:2","no_match":"match:0"}}]},{"flag":"match.nested_recursive","area":"match","summary":"Recursive SMARTS nested inside a recursive SMARTS (match path)","values":{"evaluated":"nested $() evaluated normally","always_true":"nested $() counts as true (Ambit matcher, AMBIT.md A7b)"},"processing":"Engine config: pyref Profile.nested_recursive_true","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md"]},"cases":[{"id":"nested_absent","op":"match","query":"[C;$(C[$(O)])]","mol":"CC","expect":{"evaluated":"match:0","always_true":"match:+"}},{"id":"nested_present","op":"match","query":"[C;$(C[$(O)])]","mol":"CO","expect":{"evaluated":"match:1","always_true":"match:1"}}]},{"flag":"match.or_with_any_atom","area":"match","summary":"Bare `*` inside a comma-OR","values":{"correct":"[*,#7] matches any atom","drops_any":"`*` dropped: [*,#7] == [#7] (CDK SmartsPattern in BT jar, gate path)"},"processing":"Engine config: pyref Profile.or_drops_any","provenance":{"discovered":"BioTransformer gate parity work (AMBIT.md G1)","refs":["docs/xenosmarts/AMBIT.md"]},"cases":[{"id":"star_or_n_on_ethane","op":"match","query":"[*,#7]","mol":"CC","expect":{"correct":"match:2","drops_any":"match:0"}},{"id":"star_or_h_on_methane","op":"match","query":"[*,#1]","mol":"C","expect":{"correct":"match:1","drops_any":"match:0"}}]},{"flag":"match.proton","area":"match","summary":"`[H+]` matches a bare proton","values":{"matches":"proton matched","no_match":"no match"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"proton","op":"match","query":"[H+]","mol":"[H+]","expect":{"matches":"match:1","no_match":"match:0"}}]},{"flag":"match.ring_count_basis","area":"match","summary":"`R<n>` ring-membership count basis on cage systems","values":{"sssr":"SSSR (cubane has 5 rings, R3 on 4 atoms)","symmetric":"symmetrized SSSR / relevant cycles (all 8 atoms R3)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"R3_cubane","op":"match","query":"[R3]","mol":"C12C3C4C1C5C2C3C45","expect":{"sssr":"match:4","symmetric":"match:8"}},{"id":"R2_bicyclo222","op":"match","query":"[R2]","mol":"C1CC2CCC1CC2","note":"SSSR keeps 2 of 3 equivalent rings","expect":{"sssr":"match:4","symmetric":"match:6"}},{"id":"R3_adamantane","op":"match","query":"[R3]","mol":"C1C2CC3CC1CC(C2)C3","expect":{"sssr":"match:1","symmetric":"match:4"}},{"id":"R1_adamantane","op":"match","query":"[R1]","mol":"C1C2CC3CC1CC(C2)C3","expect":{"sssr":"match:3","symmetric":"match:0"}},{"id":"R2_norbornane","op":"match","query":"[R2]","mol":"C1CC2CC1C2","expect":{"sssr":"match:3","symmetric":"match:4"}},{"id":"R2_naphthalene_control","op":"match","query":"[R2]","mol":"c1ccc2ccccc2c1","expect":{"sssr":"match:2","symmetric":"match:2"}}]},{"flag":"match.ring_size_semantics","area":"match","summary":"`r<n>`: smallest ring is n vs member of any ring of size n","values":{"smallest_ring":"Daylight/RDKit: size of the smallest ring through the atom (unique, independent of which SSSR is chosen)","any_ring":"member of any (relevant) ring of size n"},"processing":"Engine config: pyref Profile.ring_size_any","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["scripts/smarts_grammar/match.py Profile.ring_size_any"]},"cases":[{"id":"r6_hydrindane","op":"match","query":"[r6]","mol":"C1CCC2CCCC2C1","note":"bridgeheads are in a 5 and a 6 ring","expect":{"smallest_ring":"match:4","any_ring":"match:6"}},{"id":"r5_hydrindane","op":"match","query":"[r5]","mol":"C1CCC2CCCC2C1","expect":{"smallest_ring":"match:5","any_ring":"match:5"}},{"id":"r6_indane_like_spiro","op":"match","query":"[r6]","mol":"C1CCC2(C1)CCCCC2","note":"spiro atom: smallest ring 5","expect":{"smallest_ring":"match:5","any_ring":"match:6"}}]},{"flag":"match.single_bond_vs_aromatic","area":"match","summary":"Explicit `-` against an aromatic bond","values":{"excludes_aromatic":"Daylight: `-` never matches aromatic","includes_aromatic":"`-` matches Kekule single of aromatic ring"},"processing":"Engine config: pyref Profile.single_excludes_aromatic","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"single_on_benzene","op":"match","query":"c-c","mol":"c1ccccc1","expect":{"excludes_aromatic":"match:0","includes_aromatic":"match:+"}},{"id":"single_any_atoms_benzene","op":"match","query":"[#6]-[#6]","mol":"c1ccccc1","expect":{"excludes_aromatic":"match:0","includes_aromatic":"match:+"}}]},{"flag":"match.substituted_aromatic_perception","area":"match","summary":"Molecule preparation for substituted / hetero aromatics","values":{"ok":"toluene, pyridine and anisole prepare and match","error":"preparation raises for any non-benzene aromatic (pyref perceive)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs pyref 2026-10-03","refs":[]},"cases":[{"id":"toluene_any","op":"match","query":"*","mol":"Cc1ccccc1","expect":{"ok":"match:7","error":"error"}},{"id":"pyridine_any","op":"match","query":"*","mol":"c1ccncc1","expect":{"ok":"match:6","error":"error"}},{"id":"benzene_control","op":"match","query":"*","mol":"c1ccccc1","expect":{"ok":"match:6","error":"match:6"}}]},{"flag":"match.unspecified_isotope","area":"match","summary":"Isotope primitives in queries (`[12C]`, `[13C]`)","values":{"natural_is_unspecified":"isotope must equal the atom's label; unlabeled atoms match no isotope","isotope_ignored":"isotope primitive ignored: [12C] and [13C] match every carbon (chematic 1.0.30)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar); refined by flipcheck 2026-10-03 ([13C] matches unlabeled C too)","refs":[]},"cases":[{"id":"12C_on_methane","op":"match","query":"[12C]","mol":"C","expect":{"natural_is_unspecified":"match:0","isotope_ignored":"match:1"}},{"id":"13C_on_labeled_ethane","op":"match","query":"[13C]","mol":"[13CH3]C","expect":{"natural_is_unspecified":"match:1","isotope_ignored":"match:2"}}]},{"flag":"products.byproduct_filter","area":"products","summary":"Small byproducts (H2O, NH3, HCl, formaldehyde) kept or dropped","values":{"kept":"every fragment returned","blocklist":"BioTransformer isUnneccessaryMetabolite drops H2O/NH3/HCl/HCHO/CO2...; methanol kept","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md B2"]},"cases":[{"id":"dehydroxylation_water","op":"apply","query":"[C:1][O:2]>>[C:1].[O:2]","mol":"CCO","expect":{"kept":"re:products:(.*\\.)?(O|\\[OH\\]|\\[O\\])(\\..*)?","blocklist":"products:CC","rejected":"error"}},{"id":"deamination_nh3","op":"apply","query":"[C:1][N:2]>>[C:1].[N:2]","mol":"CCN","expect":{"kept":"re:products:.*N.*","blocklist":"products:CC","rejected":"error"}},{"id":"dechlorination_hcl","op":"apply","query":"[C:1][Cl:2]>>[C:1].[Cl:2]","mol":"CCCl","expect":{"kept":"re:products:.*Cl.*","blocklist":"products:CC","rejected":"error"}},{"id":"o_demethylation_hcho","op":"apply","query":"[O:1][CH3:2]>>[O:1].[C:2]=O","mol":"COCC","expect":{"kept":"re:products:.*=O.*","blocklist":"products:CCO","rejected":"error"}},{"id":"methanol_control","op":"apply","query":"[C:1][O:2][C:3]>>[C:1][O:2].[C:3]O","mol":"CCOC","expect":{"kept":"re:products:.+","blocklist":"products:CCO.CO","rejected":"error"}}]},{"flag":"products.fragment_objects","area":"products","summary":"Cleavage products: one object per fragment, or one disconnected object","values":{"per_template_component":"one object per product-template component (RDKit, chematic)","single_object":"one disconnected object per outcome (Ambit raw, pyref)","split_flattened":"fragments split, all sites merged into one de-duplicated set (BioTransformer B1)","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md B1"]},"cases":[{"id":"ester_hydrolysis","op":"apply","query":"[C:1](=[O:2])[O:3][C:4]>>[C:1](=[O:2])O.[O:3][C:4]","mol":"CC(=O)OCC","view":"objects","expect":{"per_template_component":"objects:CC(=O)O + CCO","single_object":"re:objects:[^+|]*\\.[^+|]*","split_flattened":"objects:CC(=O)O + CCO","rejected":"error"}},{"id":"chain_scission_sites","op":"apply","query":"[C:1][C:2]>>[C:1].[C:2]","mol":"CCCC","view":"objects","expect":{"per_template_component":"objects:C + CCC|CC + CC","single_object":"re:objects:[^+]*","split_flattened":"objects:C + CC + CCC","rejected":"error"}},{"id":"ether_both_sides_same","op":"apply","query":"[C:1]O[C:2]>>[C:1].[C:2]","mol":"CCOCC","view":"objects","note":"identical fragments: kept twice or merged","expect":{"per_template_component":"objects:CC + CC","single_object":"re:objects:[^+]*","split_flattened":"objects:CC","rejected":"error"}}]},{"flag":"products.grouped_product_component","area":"products","summary":"Product-side component grouping `([C:1].[O:2])`","values":{"one_object":"grouped components form one product object (RDKit)","ignored_split":"grouping ignored (BioTransformer split)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"grouped_cleavage","op":"apply","query":"[C:1][O:2]>>([C:1].[O:2])","mol":"CCO","view":"objects","expect":{"one_object":"re:objects:[^+|]*\\.[^+|]*","ignored_split":"re:objects:[^.]*","rejected":"error"}}]},{"flag":"products.new_double_bond_h","area":"products","summary":"H on atoms that gain a double bond in a cleavage (aldehyde / CO2 byproduct)","values":{"h_adjusted":"CC=O / O=C=O","h_kept_overvalent":"explicit-H substrate keeps H: C[CH2]=O, O=C=[OH] (BioTransformer; rules must delete [H])","dummies":"Ambit dummy atoms","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md B0, A24"]},"cases":[{"id":"n_deethylation_aldehyde","op":"apply","query":"[N:1][CH2:2][CH3:3]>>[N:1].[C:2](=O)[C:3]","mol":"CCN(C)C","expect":{"h_adjusted":"products:CC=O.CNC","h_kept_overvalent":"products:CNC.C[CH2]=O","dummies":"*","rejected":"error"}},{"id":"decarboxylation_co2","op":"apply","query":"[C:1][C:2](=[O:3])[O:4]>>[C:1].[O:3]=[C:2]=[O:4]","mol":"CCCC(=O)O","expect":{"h_adjusted":"products:CCC.O=C=O","h_kept_overvalent":"products:CCC.O=C=[OH]","dummies":"re:products:.*\\*.*","rejected":"error"}}]},{"flag":"products.spectator_components","area":"products","summary":"Components of a multi-component substrate that the template does not touch","values":{"dropped":"only the reacted component is returned (RDKit, chematic)","kept":"the whole input comes back as one object, spectators included (Open Babel in-place, xenosmarts)","kept_split":"spectators kept as separate fragments; small ones may then hit the byproduct blocklist (BioTransformer)","kept_labels":"kept, with Ambit implicit-H labels (cdk raw)"},"processing":null,"provenance":{"discovered":"sweep rdkit vs xenosmarts 2026-10-03","refs":[]},"cases":[{"id":"amine_with_butane","op":"apply","query":"[N:1]>>[N+:1]","mol":"CN.CCCC","view":"objects","expect":{"dropped":"objects:C[NH3+]","kept":"objects:CCCC.C[NH3+]","kept_split":"objects:CCCC + C[NH3+]","kept_labels":"re:objects:.*\\[C\\].*\\..*"}},{"id":"ethanol_with_water","op":"apply","query":"[C:1]>>[C:1]","mol":"CCO.O","expect":{"dropped":"re:products:CCO(\\|CCO)*","kept":["products:CCO.O","error"],"kept_split":"*","kept_labels":"re:products:.*\\..*"}}]},{"flag":"products.validity_filter","area":"products","summary":"BioTransformer isValidMetabolte (B5a) on products","values":{"kept":"every product returned","bt_invalid_dropped":"peroxide, ketene and carbon-free fragments (H2S, HBr) dropped; gem-diol CC(O)O kept","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md B5a","docs/xenosmarts/DISCOVERED_BEHAVIORS.md B5a"]},"cases":[{"id":"hydroperoxide","op":"apply","query":"[O:1][H]>>[O:1]O","mol":"CCO","explicit_h":true,"expect":{"kept":["re:products:.*O(\\]\\[)?O.*","error"],"bt_invalid_dropped":"products:","rejected":"error"}},{"id":"ketene","op":"apply","query":"[C:1][C:2]=[O:3]>>[C:1]=[C:2]=[O:3]","mol":"CC=O","expect":{"kept":"re:products:.+","bt_invalid_dropped":"products:","rejected":"error"}},{"id":"thiol_cleavage_h2s","op":"apply","query":"[C:1][S:2]>>[C:1].[S:2]","mol":"CCS","expect":{"kept":["re:products:.*S.*","error"],"bt_invalid_dropped":"products:CC","rejected":"error"}},{"id":"gem_diol_kept","op":"apply","query":"[C:1]=[O:2]>>[C:1](O)[O:2]","mol":"CC=O","note":"DISCOVERED_BEHAVIORS B5a lists gem-diol as invalid; BT keeps CC(O)O here (InValidSMARTS gem-diol pattern needs explicit [H])","expect":{"kept":"*","bt_invalid_dropped":"products:CC(O)O","rejected":"*"}}]},{"flag":"smirks.add_atom_with_explicit_h","area":"smirks","summary":"Add unmapped atom on reactant with explicit H","values":{"h_aware":"CCCl","empty":"nothing (chematic)","h_not_adjusted":"C[CH3]Cl (H not removed)","untyped":"Ambit dummies","rejected":"Open Babel Init fails"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md AddHs matrix"]},"cases":[{"id":"addCl_X","op":"apply","query":"[C:1]>>[C:1]Cl","mol":"CC","explicit_h":true,"expect":{"h_aware":"products:CCCl","empty":"products:","h_not_adjusted":"products:C[CH3]Cl","untyped":"re:products:.*\\*.*","rejected":"error"}}]},{"flag":"smirks.add_unmapped_atom","area":"smirks","summary":"Add unmapped product atom `[O:1]>>[O:1]C`","values":{"added":"CCOC","untyped":"added but Ambit dummy labels","rejected":"Open Babel Init fails","h_kept_overvalent":"explicit-H substrate, H never adjusted after the edit (BioTransformer pipeline)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 6"]},"cases":[{"id":"methylate_O","op":"apply","query":"[O:1]>>[O:1]C","mol":"CCO","expect":{"added":"products:CCOC","untyped":"re:products:.*\\*.*","rejected":"error","h_kept_overvalent":"products:CC[OH]C"}}]},{"flag":"smirks.aromatic_output_form","area":"smirks","summary":"How an untouched aromatic ring is written in products","values":{"aromatic":"aromatic SMILES kept (RDKit, chematic)","kekule":"Kekule SMILES (BioTransformer, xenosmarts)","kekule_labels":"Kekule with Ambit implicit-H labels","dearomatized":"ring saturated (pyref)","rejected":"identity template rejected (Open Babel)"},"processing":null,"provenance":{"discovered":"sweep rdkit vs xenosmarts 2026-10-03","refs":["docs/xenosmarts/AMBIT.md A21"]},"cases":[{"id":"toluene_methyl_identity","op":"apply","query":"[CH3:1]>>[C:1]","mol":"Cc1ccccc1","expect":{"aromatic":"products:Cc1ccccc1","kekule":"products:CC1=CC=CC=C1","kekule_labels":"re:products:.*\\[C\\].*=.*","dearomatized":"products:CC1CCCCC1","rejected":"error"}}]},{"flag":"smirks.aromatic_product","area":"smirks","summary":"Products of edits on aromatic atoms","values":{"aromatic_preserved":"phenol / benzene stay aromatic","kekule_labels":"Kekule, H lost (Ambit implicit-H)","dearomatized":"aromatic flags dropped and H refilled as saturated (pyref)","rejected":"template rejected (Open Babel Init)","kekule_h_kept":"Kekule output, substituted ring C keeps its H (BioTransformer)","kekule_output":"Kekule output, H correct (xenosmarts)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A21, A26"]},"cases":[{"id":"benzene_identity","op":"apply","query":"[c:1]:[c:2]>>[c:1]:[c:2]","mol":"c1ccccc1","expect":{"aromatic_preserved":"products:c1ccccc1","kekule_labels":"re:products:.*\\[C\\].*","dearomatized":"products:C1CCCCC1","rejected":"error","kekule_h_kept":"products:C1=CC=CC=C1","kekule_output":"products:C1=CC=CC=C1"}},{"id":"hydroxylate_benzene","op":"apply","query":"[cH:1]>>[c:1]O","mol":"c1ccccc1","expect":{"aromatic_preserved":"products:Oc1ccccc1","kekule_labels":"re:products:.*\\*.*","dearomatized":"*","rejected":"error","kekule_h_kept":"products:O[CH]1=CC=CC=C1","kekule_output":"products:OC1=CC=CC=C1"}}]},{"flag":"smirks.bond_order_decrease_retyping","area":"smirks","summary":"Atoms whose bond order drops (C=O -> C-O): retyped or dummies","values":{"retyped":"valid product (CCO; RDKit, chematic, Open Babel, BioTransformer final)","labels":"Ambit raw: H not filled, no dummies ([C][C][O])","dummies":"atoms become dummies (pyref, xenosmarts raw apply; differs from Ambit raw)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs pyref 2026-10-03","refs":["docs/xenosmarts/AMBIT.md A25b","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A25b"]},"cases":[{"id":"acetaldehyde_reduction","op":"apply","query":"[C:1]=[O:2]>>[C:1]-[O:2]","mol":"CC=O","expect":{"retyped":"products:CCO","labels":"products:[C][C][O]","dummies":"re:products:.*\\*.*"}},{"id":"nitrile_reduction","op":"apply","query":"[C:1]#[N:2]>>[C:1]=[N:2]","mol":"CC#N","expect":{"retyped":"products:CC=N","labels":"products:[C][C]=[N]","dummies":"re:products:.*\\*.*"}}]},{"flag":"smirks.charge_hcount","area":"smirks","summary":"H count after setting a +-1 charge on a neutral atom","values":{"valence_rule":"H from default valence of the charged atom ([CH2+]C, CC[OH2+], C[NH-])","cation_adds_h":"carbocation gains H (C[CH4+], chematic)","h_count_kept":"H count unchanged (C[CH3+], CC[OH-]; BioTransformer explicit H)","all_sites_in_place":"every match transformed in one molecule (Open Babel)","untyped":"Ambit dummies"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic 2026-10-03 (findings/rdkit__chematic/01361e5f50.json)","refs":[]},"cases":[{"id":"carbocation","op":"apply","query":"[C:1]>>[C+:1]","mol":"CC","expect":{"valence_rule":"products:[CH2+]C","cation_adds_h":"products:C[CH4+]","h_count_kept":"products:C[CH3+]","all_sites_in_place":"products:[CH2+][CH2+]","untyped":"re:products:.*\\*.*"}},{"id":"carbanion","op":"apply","query":"[C:1]>>[C-:1]","mol":"CC","expect":{"valence_rule":"products:[CH2-]C","cation_adds_h":"products:[CH2-]C","h_count_kept":"products:C[CH3-]","all_sites_in_place":"products:[CH2-][CH2-]","untyped":"re:products:.*\\*.*"}},{"id":"oxonium","op":"apply","query":"[O:1]>>[O+:1]","mol":"CCO","expect":{"valence_rule":"products:CC[OH2+]","cation_adds_h":"products:CC[OH2+]","h_count_kept":"products:CC[OH2+]","all_sites_in_place":"products:CC[OH2+]","untyped":"re:products:.*\\[O\\+\\].*"}},{"id":"alkoxide","op":"apply","query":"[O:1]>>[O-:1]","mol":"CCO","expect":{"valence_rule":"products:CC[O-]","cation_adds_h":"products:CC[O-]","h_count_kept":"products:CC[OH-]","all_sites_in_place":"products:CC[O-]","untyped":"re:products:.*\\*.*"}}]},{"flag":"smirks.charge_plus2_hcount","area":"smirks","summary":"Set +2 on a neutral N: H count on product","values":{"valence_reduced":"C[NH2+2]","h_added":"C[NH4+2] (chematic)","untyped":"Ambit: atom untyped ([*+2])","h_cleared":"C[N+2] (H not refilled)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 3"]},"cases":[{"id":"N_plus2","op":"apply","query":"[N:1]>>[N+2:1]","mol":"CN","expect":{"valence_reduced":"products:C[NH2+2]","h_added":"products:C[NH4+2]","untyped":"re:products:.*\\*.*","h_cleared":"products:C[N+2]"}}]},{"flag":"smirks.colon_product_bond","area":"smirks","summary":"Product `:` between mapped atoms of a non-aromatic bond (A14)","values":{"aromatic_flag_set":"bond and atoms flagged aromatic (cc, RDKit)","aromatic_bond_written":"aromatic bond, atoms not aromatic (C:C, chematic)","no_change":"`:` never changes a bond (Ambit A14)","labels":"no change; Ambit labels"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A14","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A14"]},"cases":[{"id":"colon_on_ethane","op":"apply","query":"[#6:1]-[#6:2]>>[#6:1]:[#6:2]","mol":"CC","expect":{"aromatic_flag_set":"products:cc","aromatic_bond_written":"products:C:C","no_change":"products:CC","labels":"products:[C][C]"}}]},{"flag":"smirks.delete_mapped_by_omission","area":"smirks","summary":"Mapped reactant atom omitted from products `[C:1]-[O:2]>>[C:1]`","values":{"deleted":"atom deleted, H refilled","deleted_no_refill":"deleted, radical left ([CH2]C, Open Babel)","rejected":"map index not valid (Ambit A3)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 5","docs/xenosmarts/AMBIT.md A3"]},"cases":[{"id":"drop_O","op":"apply","query":"[C:1]-[O:2]>>[C:1]","mol":"CCO","expect":{"deleted":"products:CC","deleted_no_refill":"products:[CH2]C","rejected":"error"}}]},{"flag":"smirks.disconnect","area":"smirks","summary":"Product `.` splits components `[C:1][C:2]>>[C:1].[C:2]`","values":{"split":"C.C","labels":"[C].[C] (Ambit implicit-H)","rejected":"Open Babel Init fails","split_deduped":"identical fragments merged: one C (BioTransformer)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 8"]},"cases":[{"id":"split_ethane","op":"apply","query":"[C:1][C:2]>>[C:1].[C:2]","mol":"CC","expect":{"split":"products:C.C","labels":"products:[C].[C]","rejected":"error","split_deduped":"products:C"}}]},{"flag":"smirks.edits_with_explicit_h","area":"smirks","summary":"Bond-order / add-atom edits when the reactant has explicit H","values":{"h_aware":"H removed/refilled correctly (RDKit)","empty":"edits produce nothing with AddHs (chematic)","h_not_adjusted":"explicit H kept, valence exceeded (Open Babel)","untyped":"Ambit dummies","h_kept_overvalent":"explicit-H substrate, H never adjusted after the edit (BioTransformer pipeline)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md AddHs matrix","docs/smirks/chematic_deltas.md"]},"cases":[{"id":"CC_to_CdC_X","op":"apply","query":"[C:1]-[C:2]>>[C:1]=[C:2]","mol":"CC","explicit_h":true,"expect":{"h_aware":"products:C=C","empty":"products:","h_not_adjusted":"products:[CH3]=[CH3]","untyped":"re:products:.*\\*.*","h_kept_overvalent":"products:"}},{"id":"ethanol_oxid_X","op":"apply","query":"[C:1][O:2]>>[C:1]=[O:2]","mol":"CCO","explicit_h":true,"expect":{"h_aware":"products:CC=O","empty":"products:","h_not_adjusted":"re:products:.*\\[.H.*","untyped":"re:products:.*\\*.*","h_kept_overvalent":"products:C[CH2]=[OH]"}}]},{"flag":"smirks.element_change","area":"smirks","summary":"Mapped atom changes element `[C:1]>>[N:1]`","values":{"applied":"element rewritten (RDKit)","ignored":"no-op, element kept (chematic)","corrupt":"applied with wrong H ([NH3][NH3], Open Babel)","rejected":"rule rejected: map atom types inconsistent (Ambit A4)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 2","docs/xenosmarts/AMBIT.md A4"]},"cases":[{"id":"C_to_N","op":"apply","query":"[C:1]>>[N:1]","mol":"CC","explicit_h":true,"expect":{"applied":"products:CN","ignored":"products:CC","corrupt":"products:[NH3][NH3]","rejected":"error"}}]},{"flag":"smirks.equivalent_h_mappings","area":"smirks","summary":"Mappings that differ only by which explicit H on the same atom (A11)","values":{"per_h_atom":"one outcome per H atom","collapsed":"equivalent-H mappings collapse to one (Ambit FlagFilterEquivalentMappings, BioTransformer)","single_application":"one in-place application (Open Babel)"},"processing":"The cdk adapter runs SMIRKSManager without FlagFilterEquivalentMappings (per_h_atom); BioTransformer sets it (collapsed).","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A11","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A11"]},"cases":[{"id":"ethanol_oxidation_H_X","op":"apply","query":"[H][#6:1][#8:2][H]>>[#6:1]=[#8:2]","mol":"CCO","view":"count","explicit_h":true,"expect":{"per_h_atom":"outcomes:2","collapsed":"outcomes:1","single_application":"outcomes:1"}},{"id":"methane_chlorination_H_X","op":"apply","query":"[#6:1][H]>>[#6:1]Cl","mol":"C","view":"count","explicit_h":true,"expect":{"per_h_atom":"outcomes:4","collapsed":"outcomes:1","single_application":"error"}}]},{"flag":"smirks.explicit_h_apply","area":"smirks","summary":"Any edit on a reactant with explicit H (AddHs)","values":{"h_aware":"edits apply, H adjusted (RDKit)","edits_empty":"most edits return nothing with AddHs (chematic)","h_kept":"edits apply, H count kept (CC[OH-]; Open Babel, BioTransformer, pyref)","untyped":"Ambit dummies"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic baseline 2026-10-03","refs":["docs/smirks/chematic_deltas.md AddHs"]},"cases":[{"id":"deprotonate_X","op":"apply","query":"[O:1]>>[O-:1]","mol":"CCO","explicit_h":true,"expect":{"h_aware":"products:CC[O-]","edits_empty":"products:","h_kept":"products:CC[OH-]","untyped":"re:products:.*\\*.*"}},{"id":"cleave_X","op":"apply","query":"[C:1][O:2]>>[C:1].[O:2]","mol":"CCO","explicit_h":true,"expect":{"h_aware":"products:CC.O","edits_empty":"*","h_kept":"*","untyped":"*"}},{"id":"methylate_X","op":"apply","query":"[O:1]>>[O:1]C","mol":"CCO","explicit_h":true,"expect":{"h_aware":"products:CCOC","edits_empty":"products:","h_kept":"*","untyped":"*"}}]},{"flag":"smirks.fragmented_reactant","area":"smirks","summary":"Single reactant template with `.` components `[C:1].[O:2]>>[C:1][O:2]`","values":{"intermolecular_pair":"each component matched on its own copy of the reactant (COCO, RDKit)","rejected":"error (Ambit NPE A8b, chematic, OB)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A8b"]},"cases":[{"id":"frag_template","op":"apply","query":"[C:1].[O:2]>>[C:1][O:2]","mol":"CO","expect":{"intermolecular_pair":"products:COCO","rejected":"error"}}]},{"flag":"smirks.h_atom_in_template","area":"smirks","summary":"Graph `[H]` in a SMIRKS reactant","values":{"explicit_only":"matches only with AddHs; H refilled","explicit_only_no_refill":"with AddHs, deleting H leaves [CH3] (Ambit)","implicit_matchable":"matches implicit H (Open Babel)"},"processing":"explicit_h toggles AddHs on the reactant before apply.","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md Explicit H","docs/xenosmarts/AMBIT.md A9"]},"cases":[{"id":"CH_delete_implicit","op":"apply","query":"[C:1][H]>>[C:1]","mol":"C","expect":{"explicit_only":"products:","explicit_only_no_refill":"products:","implicit_matchable":"*"}},{"id":"CH_delete_explicit","op":"apply","query":"[C:1][H]>>[C:1]","mol":"C","explicit_h":true,"expect":{"explicit_only":"products:C","explicit_only_no_refill":"products:[CH3]","implicit_matchable":"*"}},{"id":"OH_deprotonate_implicit","op":"apply","query":"[O:1][H]>>[O-:1]","mol":"CCO","expect":{"explicit_only":"products:","explicit_only_no_refill":"products:","implicit_matchable":"products:CC[O-]"}},{"id":"OH_deprotonate_explicit","op":"apply","query":"[O:1][H]>>[O-:1]","mol":"CCO","explicit_h":true,"expect":{"explicit_only":"products:CC[O-]","explicit_only_no_refill":"products:CC[O-]","implicit_matchable":"*"}}]},{"flag":"smirks.hcount_query_explicit_h","area":"smirks","summary":"`[CH3:1]>>[CH3:1]` on ethane with AddHs","values":{"pin_adds_h":"C[CH6] (template H added to explicit H, RDKit)","empty":"no products (chematic)","preserved":"CC","rejected":"template rejected (Open Babel Init)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md Explicit H"]},"cases":[{"id":"CH3_identity_X","op":"apply","query":"[CH3:1]>>[CH3:1]","mol":"CC","explicit_h":true,"expect":{"pin_adds_h":"products:C[CH6]","empty":"products:","preserved":"products:CC","rejected":"error"}}]},{"flag":"smirks.identity_labels","area":"smirks","summary":"Identity apply product labels with implicit vs explicit H","values":{"organic":"products written as organic SMILES either way","labels_need_explicit_h":"without AddHs products lose implicit H ([C][C]; Ambit)","rejected":"identity transform rejected (Open Babel Init fails when left==right)"},"processing":"CDK: run with explicit_h=True for readable products (convertImplicitToExplicitHydrogens before apply).","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 1","docs/smirks/cdk_ob_deltas.md"]},"cases":[{"id":"ident_implicit","op":"apply","query":"[C:1]>>[C:1]","mol":"CC","expect":{"organic":"products:CC","labels_need_explicit_h":"products:[C][C]","rejected":"error"}},{"id":"ident_explicit","op":"apply","query":"[C:1]>>[C:1]","mol":"CC","explicit_h":true,"expect":{"organic":"products:CC","labels_need_explicit_h":"products:CC","rejected":"error"}}]},{"flag":"smirks.mapped_aromatic_nh","area":"smirks","summary":"H on an aromatic N-H when that atom is mapped in the SMIRKS","values":{"preserved":"pyrrole N-H kept (RDKit)","h_lost_when_mapped":"mapped [nH] loses its H: identity on pyrrole gives c1ccnc1 (chematic 1.0.30); unmapped ring N-H is fine","kekule":"kept, output Kekule (BioTransformer, xenosmarts)","labels":"Ambit implicit-H labels","rejected":"identity template rejected (Open Babel)","dearomatized":"ring saturated (pyref)"},"processing":null,"provenance":{"discovered":"flipcheck rdkit vs chematic 2026-10-03 (fuzzer, flips of h_atom_query / reactant_aromaticity)","refs":[]},"cases":[{"id":"pyrrole_n_identity","op":"apply","query":"[n:1]>>[n:1]","mol":"c1cc[nH]c1","expect":{"preserved":"products:c1cc[nH]c1","h_lost_when_mapped":"products:c1ccnc1","kekule":"products:C1=CNC=C1","labels":"re:products:.*\\[N\\].*","rejected":"error","dearomatized":"products:C1CCNC1"}},{"id":"pyrrole_c_identity_control","op":"apply","query":"[c:1]>>[c:1]","mol":"c1cc[nH]c1","note":"unmapped N-H: chematic keeps it","expect":{"preserved":"products:c1cc[nH]c1","h_lost_when_mapped":"products:c1cc[nH]c1","kekule":"products:C1=CNC=C1","labels":"*","rejected":"error","dearomatized":"products:C1CCNC1"}}]},{"flag":"smirks.multi_site_application","area":"smirks","summary":"Template that matches several sites of one molecule","values":{"per_site":"one outcome per site (RDKit, chematic, Ambit, pyref)","all_sites_in_place":"every site transformed in one product (Open Babel)","flattened_h_kept":"sites merged into one fragment set, explicit H kept (BioTransformer)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs openbabel 2026-10-03","refs":[]},"cases":[{"id":"diol_deprotonate","op":"apply","query":"[O:1]>>[O-:1]","mol":"OCCO","expect":{"per_site":"re:products:[^|]*","all_sites_in_place":"products:[O-]CC[O-]","flattened_h_kept":"products:OCC[OH-]"}},{"id":"diol_oxidation_two_sites","op":"apply","query":"[O:1][C:2]>>[O:1]=[C:2]","mol":"OCC(C)O","expect":{"per_site":"re:products:[^|]+\\|[^|]+","all_sites_in_place":"products:CC(=O)C=O","flattened_h_kept":"re:products:[^|]*( / products:[^|]*)*"}}]},{"flag":"smirks.nested_recursive","area":"smirks","summary":"Nested recursive SMARTS in SMIRKS reactant (apply path)","values":{"evaluated":"nested $() evaluated: no products on ethane","always_true":"nested $() true: identity applies (Ambit A7b)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A7b"]},"cases":[{"id":"nested_absent_apply","op":"apply","query":"[C;$(C[$(O)]):1]>>[C:1]","mol":"CC","expect":{"evaluated":"products:","always_true":"re:products:.+","rejected":"error"}}]},{"flag":"smirks.neutralize_written_charge","area":"smirks","summary":"Reactant `[N+:1]` -> product `[N:1]`","values":{"neutralized":"charge set to 0","inherited":"product charge unwritten -> reactant charge kept (RDKit)","untyped":"Ambit untyped","neutralized_h_kept":"charge 0, H count kept: C[NH3] (BioTransformer)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A13"]},"cases":[{"id":"Nplus_to_N","op":"apply","query":"[N+:1]>>[N:1]","mol":"C[NH3+]","expect":{"neutralized":"products:CN","inherited":"products:C[NH3+]","untyped":"re:products:.*\\*.*","neutralized_h_kept":"products:C[NH3]"}}]},{"flag":"smirks.new_bond_query_order","area":"smirks","summary":"New product bond with query order `~` (A6)","values":{"query_bond_copied":"product keeps a query bond (CC~C; RDKit, chematic)","rejected":"undefined order error (Ambit A6, Open Babel)","bond_dropped":"atom added, bond skipped (C.CC; pyref, xenosmarts)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A6","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A6"]},"cases":[{"id":"add_methyl_any_bond","op":"apply","query":"[C:1]>>[C:1]~C","mol":"CC","expect":{"query_bond_copied":"products:CC~C","rejected":"error","bond_dropped":"re:products:.*C\\.CC.*"}}]},{"flag":"smirks.outcome_multiplicity","area":"smirks","summary":"How many outcomes per match set","values":{"all_mappings":"one outcome per ordered mapping (RDKit RunReactants)","unique_atom_sets":"one per atom set (Ambit non-identical A8)","deduped_products":"unique atom sets, identical products merged (chematic)","single_application":"one in-place application (Open Babel)","flattened":"all sites merged into one fragment set (BioTransformer)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A8, A11"]},"cases":[{"id":"bond_order_count","op":"apply","query":"[C:1]-[C:2]>>[C:1]=[C:2]","mol":"CC","view":"count","expect":{"all_mappings":"outcomes:2","unique_atom_sets":"outcomes:1","deduped_products":"outcomes:1","single_application":"outcomes:1","flattened":["outcomes:0","outcomes:1"]}},{"id":"ring_open_count","op":"apply","query":"[C:1]1[C:2]CC1>>[C:1].[C:2]","mol":"C1CCC1","view":"count","expect":{"all_mappings":"outcomes:8","unique_atom_sets":"outcomes:1","deduped_products":"outcomes:1","single_application":"error","flattened":"outcomes:1"}},{"id":"star_identity_count","op":"apply","query":"[*:1]>>[*:1]","mol":"CCO","view":"count","expect":{"all_mappings":"outcomes:3","unique_atom_sets":"outcomes:3","deduped_products":"outcomes:2","single_application":"error","flattened":"outcomes:1"}}]},{"flag":"smirks.product_h_atom_added","area":"smirks","summary":"Product adds a graph `[H]` `[O:1]>>[O:1][H]` on an anion","values":{"h_dropped":"H atom dropped, charge kept (CC[O-])","protonated_reset":"H added and charge reset (CCO, chematic)","h_added_charge_kept":"CC[OH-]","untyped":"Ambit dummies","rejected":"template rejected (Open Babel Init)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":[]},"cases":[{"id":"protonate_alkoxide","op":"apply","query":"[O:1]>>[O:1][H]","mol":"CC[O-]","expect":{"h_dropped":"products:CC[O-]","protonated_reset":"products:CCO","h_added_charge_kept":"products:CC[OH-]","untyped":"re:products:.*\\*.*","rejected":"error"}}]},{"flag":"smirks.product_h_pin","area":"smirks","summary":"Product H count `[C:1]>>[CH2:1]`","values":{"authoritative":"product H sets the count ([CH2]C); with AddHs H atoms add on top (C[CH5])","rejected_empty":"no outcomes (chematic)","ignored":"product H ignored","labels":"ignored; Ambit labels","rejected":"template rejected (Open Babel Init)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 11"]},"cases":[{"id":"pin_CH2","op":"apply","query":"[C:1]>>[CH2:1]","mol":"CC","expect":{"authoritative":"products:[CH2]C","rejected_empty":"products:","ignored":"products:CC","labels":"products:[C][C]","rejected":"error"}},{"id":"pin_CH2_X","op":"apply","query":"[C:1]>>[CH2:1]","mol":"CC","explicit_h":true,"expect":{"authoritative":"products:C[CH5]","rejected_empty":"products:","ignored":"products:CC","labels":"products:CC","rejected":"error"}}]},{"flag":"smirks.product_only_map","area":"smirks","summary":"Map number only on the product side `[C:1]>>[C:1][N:2]`","values":{"created":"atom created as if unmapped","rejected":"map index not valid"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A3"]},"cases":[{"id":"product_only_N","op":"apply","query":"[C:1]>>[C:1][N:2]","mol":"CC","expect":{"created":"products:CCN","rejected":"error"}}]},{"flag":"smirks.product_plusplus","area":"smirks","summary":"`++` on product side equals `+2`","values":{"same_as_plus2":"C[NH2+2] / C[NH4+2] like +2","untyped":"Ambit untyped"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/rdkit_rules.md E03-E05"]},"cases":[{"id":"N_pp","op":"apply","query":"[N:1]>>[N++:1]","mol":"CN","expect":{"same_as_plus2":["products:C[NH2+2]","products:C[NH4+2]","products:C[N+2]"],"untyped":"re:products:.*\\*.*"}}]},{"flag":"smirks.reactant_aromaticity","area":"smirks","summary":"Aromaticity the SMIRKS reactant matcher sees on Kekule / exocyclic-C=O rings","values":{"daylight_perceived":"Kekule benzene and 4-pyranone aromatic (RDKit, pyref)","not_perceived":"input aromaticity taken as written: Kekule benzene matches [C:1], aromatic-spelled pyranone does not (chematic run_smirks, raw Ambit)","cdk_model":"benzene aromatic, 4-pyranone not (BioTransformer B0: ElectronDonation.cdk)","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic baseline 2026-10-03","refs":["docs/xenosmarts/AMBIT.md B0"]},"cases":[{"id":"kekule_benzene_aliphatic_C","op":"apply","query":"[C:1]>>[C:1]","mol":"C1=CC=CC=C1","expect":{"daylight_perceived":"products:","not_perceived":"re:products:.+","cdk_model":"products:","rejected":"error"}},{"id":"pyranone_aliphatic_C","op":"apply","query":"[C:1]>>[C:1]","mol":"O=C1C=COC=C1","expect":{"daylight_perceived":"products:","not_perceived":"re:products:.+","cdk_model":"re:products:.+","rejected":"error"}},{"id":"pyranone_aromatic_spelling","op":"apply","query":"[C:1]>>[C:1]","mol":"O=c1ccocc1","note":"written aromatic: engines that take input bond orders literally now see c, not C","expect":{"daylight_perceived":"products:","not_perceived":"products:","cdk_model":"re:products:.+","rejected":"error"}},{"id":"tropone_aliphatic_C","op":"apply","query":"[C:1]>>[C:1]","mol":"O=C1C=CC=CC=C1","expect":{"daylight_perceived":"products:","not_perceived":"re:products:.+","cdk_model":"re:products:.+","rejected":"error"}}]},{"flag":"smirks.reactant_query_syntax","area":"smirks","summary":"SMARTS logic (`;` `,` `!`, D/X) on SMIRKS reactant atoms","values":{"full_smarts":"reactant side is SMARTS","smiles_only":"reactant side parsed as SMILES: `;`, `,`, `!`, X, D fail (chematic run_smirks)","rejected":"transform rejected for other reasons"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic (molecule-first generator) 2026-10-03","refs":["docs/xenosmarts/DISCOVERED_BEHAVIORS.md C1"]},"cases":[{"id":"and_low","op":"apply","query":"[N;#7:1]>>[N:1]","mol":"CC#N","expect":{"full_smarts":"re:products:.+","smiles_only":"error","rejected":"error"}},{"id":"connectivity_X","op":"apply","query":"[CX4:1]>>[C:1]","mol":"CC","expect":{"full_smarts":"re:products:.+","smiles_only":"error","rejected":"error"}},{"id":"or_list","op":"apply","query":"[C,N:1]>>[*:1]","mol":"CC","expect":{"full_smarts":"*","smiles_only":"error","rejected":"*"}},{"id":"plain_control","op":"apply","query":"[C:1]-[C:2]>>[C:1]=[C:2]","mol":"CC","expect":{"full_smarts":"re:products:.*","smiles_only":"re:products:.+","rejected":"error"}}]},{"flag":"smirks.recursive_in_reactant","area":"smirks","summary":"Recursive SMARTS on a mapped reactant atom","values":{"supported":"matches and applies","rejected":"SMIRKS parse error (chematic Q07, Open Babel)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/chematic_deltas.md Q07"]},"cases":[{"id":"rec_on_map","op":"apply","query":"[C;$(CO):1]>>[C:1]","mol":"CCO","expect":{"supported":["products:CCO","products:[C][C][O]"],"rejected":"error"}}]},{"flag":"smirks.sanitize_policy","area":"smirks","summary":"Lib-native sanitize on valence-invalid products","values":{"drops_invalid":"ether and neutral iminium dropped (RDKit SanitizeMol)","keeps_hypervalent_n":"ether dropped, neutral 4-valent N kept (chematic)","keeps_all":"nothing dropped (Open Babel)","untyped":"Ambit dummies survive","unsupported":"no sanitizer","h_kept_overvalent":"explicit-H substrate, H never adjusted after the edit (BioTransformer pipeline)"},"processing":"Layer S: each engine's own sanitizer only (smirks_apply.sanitize_product).","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 10, Compatibility strategy"]},"cases":[{"id":"ether_S","op":"apply","query":"[C:1][O:2]>>[C:1]=[O:2]","mol":"COC","view":"sanitized","expect":{"drops_invalid":"products:","keeps_hypervalent_n":"products:","keeps_all":"products:C=O=C","untyped":"re:products:.*\\*.*","unsupported":"unsupported","h_kept_overvalent":"products:CO=[CH3]"}},{"id":"iminium_S","op":"apply","query":"[C:1][N:2]>>[C:1]=[N:2]","mol":"CN(C)C","view":"sanitized","expect":{"drops_invalid":"products:","keeps_hypervalent_n":"products:C=N(C)C","keeps_all":"re:products:.+","untyped":"re:products:.*\\*.*","unsupported":"unsupported","h_kept_overvalent":"products:CN(C)=[CH3]"}}]},{"flag":"smirks.sanitizer","area":"smirks","summary":"Lib-native product sanitizer available","values":{"native":"engine has a sanitize step","unsupported":"no sanitizer (pyref)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs pyref 2026-10-03","refs":[]},"cases":[{"id":"identity_sanitized","op":"apply","query":"[C:1]>>[C:1]","mol":"CC","view":"sanitized","expect":{"native":["re:products:.*","error"],"unsupported":"unsupported"}}]},{"flag":"smirks.site_choice_order_dependence","area":"smirks","summary":"Which mapping/site survives depends on input atom order","values":{"order_independent":"same products for every spelling of the molecule","mapping_order_dependent":"symmetric pattern: which end is which follows atom order (chematic, Open Babel)","site_order_dependent":"several sites: which site survives follows atom order (BioTransformer, Ambit A8c)"},"processing":null,"provenance":{"discovered":"autoconf stability check 2026-10-03 (systematic reorderings)","refs":["docs/xenosmarts/AMBIT.md A8, A8c"]},"cases":[{"id":"symmetric_delete","op":"apply","query":"[C:1][C:2]>>[C:1]","mol":"CCO","note":"the same atom pair matches in two orders; the deleted end decides C vs CO","expect":{"order_independent":"re:[^/]*","mapping_order_dependent":"re:.* / .*","site_order_dependent":"re:[^/]*"}},{"id":"two_site_oxidation","op":"apply","query":"[O:1][C:2]>>[O:1]=[C:2]","mol":"OCC(C)O","expect":{"order_independent":"re:[^/]*","mapping_order_dependent":"*","site_order_dependent":"re:.* / .*"}}]},{"flag":"smirks.star_on_explicit_h","area":"smirks","summary":"Mapped `*` on a substrate with explicit H atoms","values":{"h_atoms_when_explicit":"`*` reaches H atoms only after AddHs; H substituted (RDKit)","explicit_edits_empty":"nothing with AddHs (chematic)","always_explicit":"substrate is always explicit-H: `*` edits H atoms even in a plain run (BioTransformer)","h_atoms_no_refill":"H atoms reached with AddHs, H count not refilled (pyref)","untyped":"Ambit dummies","rejected":"transform rejected"},"processing":null,"provenance":{"discovered":"fuzz cdk vs biotransformer 2026-10-03","refs":[]},"cases":[{"id":"star_chlorinate_X","op":"apply","query":"[*:1]>>[*:1]Cl","mol":"C","explicit_h":true,"expect":{"h_atoms_when_explicit":"products:CCl|C[H]Cl","explicit_edits_empty":"products:","always_explicit":"products:C[H]Cl","h_atoms_no_refill":"products:C[H]Cl|[CH4]Cl","untyped":"re:products:.*\\*.*","rejected":"error"}},{"id":"star_chlorinate","op":"apply","query":"[*:1]>>[*:1]Cl","mol":"C","expect":{"h_atoms_when_explicit":"products:CCl","explicit_edits_empty":"products:CCl","always_explicit":"products:C[H]Cl","h_atoms_no_refill":"products:CCl","untyped":"re:products:.*\\*.*","rejected":"error"}}]},{"flag":"smirks.star_retype","area":"smirks","summary":"Typed reactant map rewritten as product `*` `[O:1]>>[*:1]C(=O)C`","values":{"keeps_reactant_atom":"acetyl ester","corrupt":"[*H]CC (Open Babel)","rejected":"map atom types inconsistent (Ambit A4)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 7","docs/chematic/issues/002-smirks-product-hash-bracket-expand.md"]},"cases":[{"id":"acetyl_star","op":"apply","query":"[O:1]>>[*:1]C(=O)C","mol":"CCO","expect":{"keeps_reactant_atom":"products:CCOC(C)=O","corrupt":"products:[*H]CC","rejected":"error"}}]},{"flag":"smirks.stereo_carried","area":"smirks","summary":"Tetrahedral stereo on an atom carried through an edit next to it","values":{"preserved":"parity kept (RDKit)","flipped_by_neighbor_order":"parity inverted when the mapped atom is a particular neighbor (chematic 1.0.30 bug)","dropped":"stereo removed (BioTransformer, pyref)","labels":"Ambit labels, stereo dropped","rejected":"transform rejected (Open Babel identity)"},"processing":null,"provenance":{"discovered":"fuzz rdkit vs chematic baseline 2026-10-03","refs":[]},"cases":[{"id":"map_on_methyl_R","op":"apply","query":"[CH3:1]>>[C:1]","mol":"C[C@H](N)O","expect":{"preserved":"products:C[C@H](N)O","flipped_by_neighbor_order":"products:C[C@@H](N)O","dropped":"products:CC(N)O","labels":"re:products:.*\\[C\\].*","rejected":"error"}},{"id":"map_on_methyl_S","op":"apply","query":"[CH3:1]>>[C:1]","mol":"C[C@@H](N)O","expect":{"preserved":"products:C[C@@H](N)O","flipped_by_neighbor_order":"products:C[C@H](N)O","dropped":"products:CC(N)O","labels":"re:products:.*\\[C\\].*","rejected":"error"}},{"id":"map_on_hydroxyl_control","op":"apply","query":"[O:1]>>[O:1]","mol":"C[C@H](N)O","expect":{"preserved":"products:C[C@H](N)O","flipped_by_neighbor_order":"products:C[C@H](N)O","dropped":"products:CC(N)O","labels":"re:products:.*\\[C\\].*","rejected":"error"}}]},{"flag":"smirks.undefined_order_both_sides","area":"smirks","summary":"Query order on both sides between mapped atoms `-,:` >> `=,:` (A6b)","values":{"first_alternative":"first product alternative applied (C=C, RDKit)","noop_applied":"reported, bond edit skipped, rest applied (Ambit A6b)","rejected":"rule rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A6b","docs/xenosmarts/DISCOVERED_BEHAVIORS.md A6b"]},"cases":[{"id":"undef_both","op":"apply","query":"[#6:1]-,:[#6:2]>>[#6:1]=,:[#6:2]","mol":"CC","expect":{"first_alternative":"products:C=C","noop_applied":["products:CC","products:[C][C]"],"rejected":"error"}}]},{"flag":"smirks.undefined_product_bond","area":"smirks","summary":"Product bond with query order `=,:` on mapped atoms","values":{"first_alternative":"first alternative applied (C=C)","skipped":"bond edit skipped, rest applied (Ambit A6b / OB)","rejected":"rule rejected"},"processing":"CDK adapter raises on SMIRKSManager errors; BioTransformer ignores A6b errors and applies (adapter policy).","provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A6, A6b"]},"cases":[{"id":"undef_order","op":"apply","query":"[C:1]-[C:2]>>[C:1]=,:[C:2]","mol":"CC","expect":{"first_alternative":"products:C=C","skipped":"products:CC","rejected":"error"}}]},{"flag":"smirks.unmapped_reactant_deleted","area":"smirks","summary":"Unmapped reactant atom `[C:1]O>>[C:1]`","values":{"deleted":"deleted, H refilled (also with AddHs)","deleted_h_orphaned":"with AddHs the O's H atom is left as a fragment (pyref)","labels_h_orphaned":"implicit-H run gives [C][C]; AddHs run orphans the H (Ambit)","rejected":"rule rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A9"]},"cases":[{"id":"drop_unmapped_O","op":"apply","query":"[C:1]O>>[C:1]","mol":"CCO","expect":{"deleted":"products:CC","deleted_h_orphaned":"products:CC","labels_h_orphaned":"products:[C][C]","rejected":"error"}},{"id":"drop_unmapped_O_X","op":"apply","query":"[C:1]O>>[C:1]","mol":"CCO","explicit_h":true,"expect":{"deleted":"products:CC","deleted_h_orphaned":"re:products:.*\\[H.*","labels_h_orphaned":"re:products:.*\\[H.*","rejected":"error"}},{"id":"drop_unmapped_N","op":"apply","query":"[C:1]N>>[C:1]","mol":"CCCN","expect":{"deleted":"products:CCC","deleted_h_orphaned":"products:CCC","labels_h_orphaned":"products:[C][C][C]","rejected":"error"}}]},{"flag":"smirks.unwritten_charge","area":"smirks","summary":"`[N:1]>>[N:1]` on a charged reactant atom","values":{"inherited":"charge kept","reset":"charge cleared to 0 (chematic)","labels":"charge kept, H lost ([C][N+], Ambit implicit-H)","rejected":"identity rejected"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/xenosmarts/AMBIT.md A13"]},"cases":[{"id":"N_keep_on_ammonium","op":"apply","query":"[N:1]>>[N:1]","mol":"C[NH3+]","expect":{"inherited":"products:C[NH3+]","reset":"products:CN","labels":"products:[C][N+]","rejected":"error"}}]},{"flag":"smirks.valence_invalid_raw","area":"smirks","summary":"Raw edit product that breaks valence (ether -> C=O)","values":{"kept_raw":"unsanitized C=OC kept (RDKit Layer E)","dropped_at_apply":"valence check drops it (chematic)","hypervalent":"C=O=C (Open Babel)","untyped":"Ambit dummies","h_kept_overvalent":"explicit-H substrate, H never adjusted after the edit (BioTransformer pipeline)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smirks/README.md section 9"]},"cases":[{"id":"ether_trap","op":"apply","query":"[C:1][O:2]>>[C:1]=[O:2]","mol":"COC","expect":{"kept_raw":"products:C=OC","dropped_at_apply":"products:","hypervalent":"products:C=O=C","untyped":"re:products:.*\\*.*","h_kept_overvalent":"products:CO=[CH3]"}}]},{"flag":"syntax.aliphatic_any_A","area":"syntax","summary":"`A` aliphatic any atom","values":{"supported":"parses and matches (core OpenSMARTS)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"aliphatic_any_A","op":"match","query":"[A]","mol":"c1ccccc1C","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.aliphatic_hetero_neighbors_Z","area":"syntax","summary":"RDKit `Z` aliphatic heteroatom-neighbor count","values":{"supported":"parses and matches (RDKit-only extension)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"aliphatic_hetero_neighbors_Z","op":"match","query":"[CZ1]","mol":"CO","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.aromatic_selenium","area":"syntax","summary":"aromatic `se` in brackets","values":{"supported":"parses and matches (core OpenSMARTS)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"aromatic_selenium","op":"match","query":"[se]","mol":"c1cc[se]c1","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.cdk_hash_X","area":"syntax","summary":"CDK `#X` any non-C non-H","values":{"supported":"parses and matches (CDK-only extension)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"cdk_hash_X","op":"match","query":"[#X]","mol":"CO","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.charge_plusplus","area":"syntax","summary":"`++` / `--`: formal charge +-2 (Daylight) vs And(+1,+1)","values":{"charge2":"`++` is Charge(+2)","and_plus1":"`++` parsed as +1 & +1, i.e. charge +1 (chematic <=1.0.28)"},"processing":null,"provenance":{"discovered":"chematic <=1.0.28; fixed in 1.0.30","refs":["docs/chematic/issues/001-plusplus-charge-and.md","docs/smarts_dialects.md"]},"cases":[{"id":"pp_on_n2plus","op":"match","query":"[N++]","mol":"C[N+2]","expect":{"charge2":"match:1","and_plus1":"match:0"}},{"id":"pp_on_n1plus","op":"match","query":"[N++]","mol":"C[NH3+]","expect":{"charge2":"match:0","and_plus1":"match:1"}}]},{"flag":"syntax.component_grouping","area":"syntax","summary":"Component-level grouping `(C).(O)` / `(C.O)`","values":{"enforced":"groups constrain components","ignored":"parentheses accepted, grouping ignored","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"separate_groups_same_component","op":"match","query":"(C).(O)","mol":"CO","expect":{"enforced":"match:0","ignored":"match:1","rejected":"error"}},{"id":"same_group_two_components","op":"match","query":"(C.O)","mol":"C.O","expect":{"enforced":"match:0","ignored":"*","rejected":"error"}}]},{"flag":"syntax.dative_bond","area":"syntax","summary":"RDKit dative bonds `->` / `<-` in SMARTS","values":{"supported":"parses","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"dative_parse","op":"parse","query":"N->[Fe]","expect":{"supported":"ok","rejected":"error"}}]},{"flag":"syntax.dot_disconnected","area":"syntax","summary":"Disconnected `.` query without grouping","values":{"supported":"C.O matches methanol (no component constraint)","rejected":"parse error (Open Babel)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"dot_on_methanol","op":"match","query":"C.O","mol":"CO","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.hetero_neighbors_z","area":"syntax","summary":"RDKit `z` heteroatom-neighbor count","values":{"supported":"parses and matches (RDKit-only extension)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"hetero_neighbors_z","op":"match","query":"[Cz1]","mol":"CO","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.hybridization","area":"syntax","summary":"`^n` hybridization digits: which digits parse and what they match","values":{"zero_to_five":"RDKit: ^0..^5 (S..SP3D2); ^7 rejected; bare ^ rejected","lenient_digits":"chematic 1.0.30: accepts ^0..^7, bare ^ rejected","openbabel_bare":"Open Babel: bare ^ means ^1 (SP); ^0 accepted","cdk_one_based_untyped":"CDK SmartsPattern: ^0 rejected; ^3 does not match unless atoms are hybridization-typed","unsupported":"parses but matching raises (no perceived hybridization)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md","scripts/smarts_grammar/hyb.py"]},"cases":[{"id":"hyb_digit0","op":"parse","query":"[C^0]","expect":{"zero_to_five":"ok","lenient_digits":"ok","openbabel_bare":"ok","cdk_one_based_untyped":"error","unsupported":"*"}},{"id":"hyb_digit7","op":"parse","query":"[C^7]","expect":{"zero_to_five":"error","lenient_digits":"ok","openbabel_bare":"ok","cdk_one_based_untyped":"ok","unsupported":"*"}},{"id":"hyb_sp3_ethane","op":"match","query":"[C^3]","mol":"CC","expect":{"zero_to_five":"match:2","lenient_digits":"match:2","openbabel_bare":"match:2","cdk_one_based_untyped":"match:0","unsupported":"error"}},{"id":"hyb_bare_ethyne","op":"match","query":"[C^]","mol":"C#C","expect":{"zero_to_five":"error","lenient_digits":"error","openbabel_bare":"match:2","cdk_one_based_untyped":"error","unsupported":"error"}}]},{"flag":"syntax.insaturation_i","area":"syntax","summary":"CDK/CACTVS `i<n>` insaturation","values":{"supported":"i1 matches atoms with one pi bond","parsed_no_match":"parses, matches nothing (chematic)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"i1_ethene","op":"match","query":"[Ci1]","mol":"C=C","expect":{"supported":"match:2","parsed_no_match":"match:0","rejected":"error"}}]},{"flag":"syntax.periodic_group_G","area":"syntax","summary":"CDK `G<n>` periodic group","values":{"supported":"parses and matches (CDK-documented; jar SmartsPattern rejects)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"periodic_group_G","op":"match","query":"[G16]","mol":"CO","expect":{"supported":"match:1","rejected":"error"}}]},{"flag":"syntax.range_counts","area":"syntax","summary":"RDKit `{lo-hi}` count ranges","values":{"supported":"parses and matches (RDKit-only extension)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"range_counts","op":"match","query":"[CD{1-2}]","mol":"CCC","expect":{"supported":"match:3","rejected":"error"}}]},{"flag":"syntax.ring_size_k","area":"syntax","summary":"`k<n>` member of any ring of size n","values":{"supported":"parses and matches (RDKit/chematic extension)","rejected":"parse error"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"ring_size_k","op":"match","query":"[Ck6]","mol":"C1CCC2CCCC2C1","expect":{"supported":"match:6","rejected":"error"}}]},{"flag":"syntax.unclosed_ring","area":"syntax","summary":"Unclosed ring-closure digit in SMARTS","values":{"rejected":"parse error","accepted":"accepted (smarts_grammar records QueryMol.open_rings)"},"processing":null,"provenance":{"discovered":"2026-10-03 autoconf discovery matrix (rdkit 2026.03.6, chematic 1.0.30, openbabel 3.2.1, cdk 2.7.1+ambit bt-jar)","refs":["docs/smarts_dialects.md"]},"cases":[{"id":"unclosed","op":"parse","query":"C1CC","expect":{"rejected":"error","accepted":"ok"}}]}],"configs":[{"id":"biotransformer@2.7.1+biotransformer(fat-jar)","adapter":"biotransformer","version":"2.7.1+biotransformer(fat-jar)","generated":"2026-10-03","flags":{"match.aromatic_valence":{"value":"kekule_total","observed":{"benzene_v4":"match:6","benzene_v3":"match:0","pyrrole_n_v3":"match:1"}},"match.aromaticity_exocyclic_carbonyl":{"value":"daylight_like","observed":{"pyranone_c":"match:5","tropone_c":"match:7","benzene_control":"match:6"}},"match.atom_chirality":{"value":"enforced","observed":{"opposite":"match:0","unspecified_mol":"match:0"}},"match.bond_stereo":{"value":"enforced","observed":{"trans_vs_cis":"match:0","trans_vs_unspecified":"match:0","trans_vs_cis_branch_spelling":"match:0","cis_all_spellings":"match:0","trans_vs_trans_branch_spelling":"match:1"}},"match.compound_bond_kekule":{"value":"aromatic_aware","observed":{"ring_single_benzene":"match:0","single_and_ring_benzene":"match:0","double_and_ring_benzene":"match:0","ring_bond_control":"match:6"}},"match.count_semantics":{"value":"unique_atom_sets","observed":{"ethane_CC":"match:1","benzene_ring6":"match:1","asymmetric_control":"match:1"}},"match.degree_with_explicit_h":{"value":"counts_h_atoms","observed":{"CD1_explicit":"match:0","CD1_implicit":"match:2"}},"match.directional_bond":{"value":"single_or_aromatic","observed":{"slash_benzene":"match:6","slash_ethane":"match:1","backslash_benzene":"match:6"}},"match.double_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"double_on_benzene":"match:0","double_on_kekule_benzene":"match:0","double_control_ethene":"match:1"}},"match.h_atom_query":{"value":"explicit_only","observed":{"CH_implicit":"match:0","CH_explicit":"match:4","hash1_explicit":"match:4"}},"match.h_count_with_explicit_h":{"value":"counts_h_atoms","observed":{"CH3_explicit":"match:2"}},"match.implicit_h_lowercase_h":{"value":"at_least_one","observed":{"h_bare_ethane":"match:2"}},"match.nested_recursive":{"value":"evaluated","observed":{"nested_absent":"match:0","nested_present":"match:1"}},"match.or_with_any_atom":{"value":"drops_any","observed":{"star_or_n_on_ethane":"match:0","star_or_h_on_methane":"match:0"}},"match.proton":{"value":"matches","observed":{"proton":"match:1"}},"match.ring_count_basis":{"value":"sssr","observed":{"R3_cubane":"match:4","R2_bicyclo222":"match:4","R3_adamantane":"match:1","R1_adamantane":"match:3","R2_norbornane":"match:3","R2_naphthalene_control":"match:2"}},"match.ring_size_semantics":{"value":"smallest_ring","observed":{"r6_hydrindane":"match:4","r5_hydrindane":"match:5","r6_indane_like_spiro":"match:5"}},"match.single_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"single_on_benzene":"match:0","single_any_atoms_benzene":"match:0"}},"match.substituted_aromatic_perception":{"value":"ok","observed":{"toluene_any":"match:7","pyridine_any":"match:6","benzene_control":"match:6"}},"match.unspecified_isotope":{"value":"natural_is_unspecified","observed":{"12C_on_methane":"match:0","13C_on_labeled_ethane":"match:1"}},"products.byproduct_filter":{"value":"blocklist","observed":{"dehydroxylation_water":"products:CC","deamination_nh3":"products:CC","dechlorination_hcl":"products:CC","o_demethylation_hcho":"products:CCO","methanol_control":"products:CCO.CO"}},"products.fragment_objects":{"value":"split_flattened","observed":{"ester_hydrolysis":"objects:CC(=O)O + CCO","chain_scission_sites":"objects:C + CC + CCC","ether_both_sides_same":"objects:CC"}},"products.grouped_product_component":{"value":"ignored_split","observed":{"grouped_cleavage":"objects:CC"}},"products.new_double_bond_h":{"value":"h_kept_overvalent","observed":{"n_deethylation_aldehyde":"products:CNC.C[CH2]=O","decarboxylation_co2":"products:CCC.O=C=[OH]"}},"products.spectator_components":{"value":"kept_split","observed":{"amine_with_butane":"objects:CCCC + C[NH3+]","ethanol_with_water":"products:CCO"}},"products.validity_filter":{"value":"bt_invalid_dropped","observed":{"hydroperoxide":"products:","ketene":"products:","thiol_cleavage_h2s":"products:CC","gem_diol_kept":"products:CC(O)O"}},"smirks.add_atom_with_explicit_h":{"value":"h_not_adjusted","observed":{"addCl_X":"products:C[CH3]Cl"}},"smirks.add_unmapped_atom":{"value":"h_kept_overvalent","observed":{"methylate_O":"products:CC[OH]C"}},"smirks.aromatic_output_form":{"value":"kekule","observed":{"toluene_methyl_identity":"products:CC1=CC=CC=C1"}},"smirks.aromatic_product":{"value":"kekule_h_kept","observed":{"benzene_identity":"products:C1=CC=CC=C1","hydroxylate_benzene":"products:O[CH]1=CC=CC=C1"}},"smirks.bond_order_decrease_retyping":{"value":"retyped","observed":{"acetaldehyde_reduction":"products:CCO","nitrile_reduction":"products:CC=N"}},"smirks.charge_hcount":{"value":"h_count_kept","observed":{"carbocation":"products:C[CH3+]","carbanion":"products:C[CH3-]","oxonium":"products:CC[OH2+]","alkoxide":"products:CC[OH-]"}},"smirks.charge_plus2_hcount":{"value":"valence_reduced","observed":{"N_plus2":"products:C[NH2+2]"}},"smirks.colon_product_bond":{"value":"no_change","observed":{"colon_on_ethane":"products:CC"}},"smirks.delete_mapped_by_omission":{"value":"rejected","observed":{"drop_O":"error"}},"smirks.disconnect":{"value":"split_deduped","observed":{"split_ethane":"products:C"}},"smirks.edits_with_explicit_h":{"value":"h_kept_overvalent","observed":{"CC_to_CdC_X":"products:","ethanol_oxid_X":"products:C[CH2]=[OH]"}},"smirks.element_change":{"value":"rejected","observed":{"C_to_N":"error"}},"smirks.equivalent_h_mappings":{"value":"collapsed","observed":{"ethanol_oxidation_H_X":"outcomes:1","methane_chlorination_H_X":"outcomes:1"}},"smirks.explicit_h_apply":{"value":"h_kept","observed":{"deprotonate_X":"products:CC[OH-]","cleave_X":"products:CC","methylate_X":"products:CC[OH]C"}},"smirks.fragmented_reactant":{"value":"rejected","observed":{"frag_template":"error"}},"smirks.h_atom_in_template":{"value":"implicit_matchable","observed":{"CH_delete_implicit":"products:C","CH_delete_explicit":"products:C","OH_deprotonate_implicit":"products:CC[O-]","OH_deprotonate_explicit":"products:CC[O-]"}},"smirks.hcount_query_explicit_h":{"value":"preserved","observed":{"CH3_identity_X":"products:CC"}},"smirks.identity_labels":{"value":"organic","observed":{"ident_implicit":"products:CC","ident_explicit":"products:CC"}},"smirks.mapped_aromatic_nh":{"value":"kekule","observed":{"pyrrole_n_identity":"products:C1=CNC=C1","pyrrole_c_identity_control":"products:C1=CNC=C1"}},"smirks.multi_site_application":{"value":"flattened_h_kept","observed":{"diol_deprotonate":"products:OCC[OH-]","diol_oxidation_two_sites":"products:CC(O)[CH2]=[OH] / products:C[CH](=[OH])CO"}},"smirks.nested_recursive":{"value":"always_true","observed":{"nested_absent_apply":"products:CC"}},"smirks.neutralize_written_charge":{"value":"neutralized_h_kept","observed":{"Nplus_to_N":"products:C[NH3]"}},"smirks.new_bond_query_order":{"value":"rejected","observed":{"add_methyl_any_bond":"error"}},"smirks.outcome_multiplicity":{"value":"flattened","observed":{"bond_order_count":"outcomes:0","ring_open_count":"outcomes:1","star_identity_count":"outcomes:1"}},"smirks.product_h_atom_added":{"value":"h_added_charge_kept","observed":{"protonate_alkoxide":"products:CC[OH-]"}},"smirks.product_h_pin":{"value":"ignored","observed":{"pin_CH2":"products:CC","pin_CH2_X":"products:CC"}},"smirks.product_only_map":{"value":"rejected","observed":{"product_only_N":"error"}},"smirks.product_plusplus":{"value":"same_as_plus2","observed":{"N_pp":"products:C[NH2+2]"}},"smirks.reactant_aromaticity":{"value":"cdk_model","observed":{"kekule_benzene_aliphatic_C":"products:","pyranone_aliphatic_C":"products:O=C1C=COC=C1","pyranone_aromatic_spelling":"products:O=C1C=COC=C1","tropone_aliphatic_C":"products:O=C1C=CC=CC=C1"}},"smirks.reactant_query_syntax":{"value":"full_smarts","observed":{"and_low":"products:CC#N","connectivity_X":"products:CC","or_list":"products:CC","plain_control":"products:"}},"smirks.recursive_in_reactant":{"value":"supported","observed":{"rec_on_map":"products:CCO"}},"smirks.sanitize_policy":{"value":"h_kept_overvalent","observed":{"ether_S":"products:CO=[CH3]","iminium_S":"products:CN(C)=[CH3]"}},"smirks.sanitizer":{"value":"native","observed":{"identity_sanitized":"products:CC"}},"smirks.site_choice_order_dependence":{"value":"site_order_dependent","observed":{"symmetric_delete":"error","two_site_oxidation":"products:CC(O)[CH2]=[OH] / products:C[CH](=[OH])CO"}},"smirks.star_on_explicit_h":{"value":"always_explicit","observed":{"star_chlorinate_X":"products:C[H]Cl","star_chlorinate":"products:C[H]Cl"}},"smirks.star_retype":{"value":"rejected","observed":{"acetyl_star":"error"}},"smirks.stereo_carried":{"value":"dropped","observed":{"map_on_methyl_R":"products:CC(N)O","map_on_methyl_S":"products:CC(N)O","map_on_hydroxyl_control":"products:CC(N)O"}},"smirks.undefined_order_both_sides":{"value":"noop_applied","observed":{"undef_both":"products:CC"}},"smirks.undefined_product_bond":{"value":"rejected","observed":{"undef_order":"error"}},"smirks.unmapped_reactant_deleted":{"value":"deleted","observed":{"drop_unmapped_O":"products:CC","drop_unmapped_O_X":"products:CC","drop_unmapped_N":"products:CCC"}},"smirks.unwritten_charge":{"value":"inherited","observed":{"N_keep_on_ammonium":"products:C[NH3+]"}},"smirks.valence_invalid_raw":{"value":"h_kept_overvalent","observed":{"ether_trap":"products:CO=[CH3]"}},"syntax.aliphatic_any_A":{"value":"supported","observed":{"aliphatic_any_A":"match:1"}},"syntax.aliphatic_hetero_neighbors_Z":{"value":"rejected","observed":{"aliphatic_hetero_neighbors_Z":"error"}},"syntax.aromatic_selenium":{"value":"supported","observed":{"aromatic_selenium":"match:1"}},"syntax.cdk_hash_X":{"value":"supported","observed":{"cdk_hash_X":"match:1"}},"syntax.charge_plusplus":{"value":"charge2","observed":{"pp_on_n2plus":"match:1","pp_on_n1plus":"match:0"}},"syntax.component_grouping":{"value":"enforced","observed":{"separate_groups_same_component":"match:0","same_group_two_components":"match:0"}},"syntax.dative_bond":{"value":"rejected","observed":{"dative_parse":"error"}},"syntax.dot_disconnected":{"value":"supported","observed":{"dot_on_methanol":"match:1"}},"syntax.hetero_neighbors_z":{"value":"rejected","observed":{"hetero_neighbors_z":"error"}},"syntax.hybridization":{"value":"cdk_one_based_untyped","observed":{"hyb_digit0":"error","hyb_digit7":"ok","hyb_sp3_ethane":"match:0","hyb_bare_ethyne":"error"}},"syntax.insaturation_i":{"value":"supported","observed":{"i1_ethene":"match:2"}},"syntax.periodic_group_G":{"value":"rejected","observed":{"periodic_group_G":"error"}},"syntax.range_counts":{"value":"supported","observed":{"range_counts":"match:3"}},"syntax.ring_size_k":{"value":"rejected","observed":{"ring_size_k":"error"}},"syntax.unclosed_ring":{"value":"rejected","observed":{"unclosed":"error"}}}},{"id":"cdk@2.7.1+ambit(bt-jar)","adapter":"cdk","version":"2.7.1+ambit(bt-jar)","generated":"2026-10-03","flags":{"match.aromatic_valence":{"value":"kekule_total","observed":{"benzene_v4":"match:6","benzene_v3":"match:0","pyrrole_n_v3":"match:1"}},"match.aromaticity_exocyclic_carbonyl":{"value":"daylight_like","observed":{"pyranone_c":"match:5","tropone_c":"match:7","benzene_control":"match:6"}},"match.atom_chirality":{"value":"enforced","observed":{"opposite":"match:0","unspecified_mol":"match:0"}},"match.bond_stereo":{"value":"enforced","observed":{"trans_vs_cis":"match:0","trans_vs_unspecified":"match:0","trans_vs_cis_branch_spelling":"match:0","cis_all_spellings":"match:0","trans_vs_trans_branch_spelling":"match:1"}},"match.compound_bond_kekule":{"value":"aromatic_aware","observed":{"ring_single_benzene":"match:0","single_and_ring_benzene":"match:0","double_and_ring_benzene":"match:0","ring_bond_control":"match:6"}},"match.count_semantics":{"value":"unique_atom_sets","observed":{"ethane_CC":"match:1","benzene_ring6":"match:1","asymmetric_control":"match:1"}},"match.degree_with_explicit_h":{"value":"counts_h_atoms","observed":{"CD1_explicit":"match:0","CD1_implicit":"match:2"}},"match.directional_bond":{"value":"single_or_aromatic","observed":{"slash_benzene":"match:6","slash_ethane":"match:1","backslash_benzene":"match:6"}},"match.double_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"double_on_benzene":"match:0","double_on_kekule_benzene":"match:0","double_control_ethene":"match:1"}},"match.h_atom_query":{"value":"explicit_only","observed":{"CH_implicit":"match:0","CH_explicit":"match:4","hash1_explicit":"match:4"}},"match.h_count_with_explicit_h":{"value":"counts_h_atoms","observed":{"CH3_explicit":"match:2"}},"match.implicit_h_lowercase_h":{"value":"at_least_one","observed":{"h_bare_ethane":"match:2"}},"match.nested_recursive":{"value":"evaluated","observed":{"nested_absent":"match:0","nested_present":"match:1"}},"match.or_with_any_atom":{"value":"drops_any","observed":{"star_or_n_on_ethane":"match:0","star_or_h_on_methane":"match:0"}},"match.proton":{"value":"matches","observed":{"proton":"match:1"}},"match.ring_count_basis":{"value":"sssr","observed":{"R3_cubane":"match:4","R2_bicyclo222":"match:4","R3_adamantane":"match:1","R1_adamantane":"match:3","R2_norbornane":"match:3","R2_naphthalene_control":"match:2"}},"match.ring_size_semantics":{"value":"smallest_ring","observed":{"r6_hydrindane":"match:4","r5_hydrindane":"match:5","r6_indane_like_spiro":"match:5"}},"match.single_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"single_on_benzene":"match:0","single_any_atoms_benzene":"match:0"}},"match.substituted_aromatic_perception":{"value":"ok","observed":{"toluene_any":"match:7","pyridine_any":"match:6","benzene_control":"match:6"}},"match.unspecified_isotope":{"value":"natural_is_unspecified","observed":{"12C_on_methane":"match:0","13C_on_labeled_ethane":"match:1"}},"products.byproduct_filter":{"value":"kept","observed":{"dehydroxylation_water":"products:[C][C].[O]","deamination_nh3":"products:[C][C].[N]","dechlorination_hcl":"products:[C][C].[Cl]","o_demethylation_hcho":"products:*=O.[C][C][O]","methanol_control":"products:[C][C][O].[C][O]"}},"products.fragment_objects":{"value":"single_object","observed":{"ester_hydrolysis":"objects:[C][C]([O])=[O].[C][C][O]","chain_scission_sites":"objects:[C].[C][C][C]|[C][C].[C][C]","ether_both_sides_same":"objects:[C][C].[C][C]"}},"products.grouped_product_component":{"value":"one_object","observed":{"grouped_cleavage":"objects:[C][C].[O]"}},"products.new_double_bond_h":{"value":"dummies","observed":{"n_deethylation_aldehyde":"products:[C][*]=[O].[C][N][C]","decarboxylation_co2":"products:*=C=O.[C][C][C]"}},"products.spectator_components":{"value":"kept_labels","observed":{"amine_with_butane":"objects:[C][C][C][C].[C][N+]","ethanol_with_water":"products:[C][C][O].[O]"}},"products.validity_filter":{"value":"kept","observed":{"hydroperoxide":"products:[CH3][CH2][O][O]","ketene":"products:*=*=O","thiol_cleavage_h2s":"products:[C][C].[S]","gem_diol_kept":"products:[C][C]([O])[O]"}},"smirks.add_atom_with_explicit_h":{"value":"untyped","observed":{"addCl_X":"products:C[*H3]Cl"}},"smirks.add_unmapped_atom":{"value":"untyped","observed":{"methylate_O":"products:[C][*][C][C]"}},"smirks.aromatic_output_form":{"value":"kekule_labels","observed":{"toluene_methyl_identity":"products:[C][C]1=[C][C]=[C][C]=[C]1"}},"smirks.aromatic_product":{"value":"kekule_labels","observed":{"benzene_identity":"products:[C]1=[C][C]=[C][C]=[C]1","hydroxylate_benzene":"products:[O][*]1=[C][C]=[C][C]=[C]1"}},"smirks.bond_order_decrease_retyping":{"value":"labels","observed":{"acetaldehyde_reduction":"products:[C][C][O]","nitrile_reduction":"products:[C][C]=[N]"}},"smirks.charge_hcount":{"value":"untyped","observed":{"carbocation":"products:[*+][C]","carbanion":"products:[*-][C]","oxonium":"products:[C][C][O+]","alkoxide":"products:[*-][C][C]"}},"smirks.charge_plus2_hcount":{"value":"untyped","observed":{"N_plus2":"products:[*+2][C]"}},"smirks.colon_product_bond":{"value":"labels","observed":{"colon_on_ethane":"products:[C][C]"}},"smirks.delete_mapped_by_omission":{"value":"rejected","observed":{"drop_O":"error"}},"smirks.disconnect":{"value":"labels","observed":{"split_ethane":"products:[C].[C]"}},"smirks.edits_with_explicit_h":{"value":"untyped","observed":{"CC_to_CdC_X":"products:[*H3]=[*H3]","ethanol_oxid_X":"products:[*H]=[*H2]C"}},"smirks.element_change":{"value":"rejected","observed":{"C_to_N":"error"}},"smirks.equivalent_h_mappings":{"value":"per_h_atom","observed":{"ethanol_oxidation_H_X":"outcomes:2","methane_chlorination_H_X":"outcomes:4"}},"smirks.explicit_h_apply":{"value":"untyped","observed":{"deprotonate_X":"products:[*H-]CC","cleave_X":"products:[CH2]C.[OH]","methylate_X":"products:[C][*H][CH2][CH3]"}},"smirks.fragmented_reactant":{"value":"rejected","observed":{"frag_template":"error"}},"smirks.h_atom_in_template":{"value":"explicit_only_no_refill","observed":{"CH_delete_implicit":"products:","CH_delete_explicit":"products:[CH3]","OH_deprotonate_implicit":"products:","OH_deprotonate_explicit":"products:CC[O-]"}},"smirks.hcount_query_explicit_h":{"value":"preserved","observed":{"CH3_identity_X":"products:CC"}},"smirks.identity_labels":{"value":"labels_need_explicit_h","observed":{"ident_implicit":"products:[C][C]","ident_explicit":"products:CC"}},"smirks.mapped_aromatic_nh":{"value":"labels","observed":{"pyrrole_n_identity":"products:[C]1=[C][N][C]=[C]1","pyrrole_c_identity_control":"products:[C]1=[C][N][C]=[C]1"}},"smirks.multi_site_application":{"value":"per_site","observed":{"diol_deprotonate":"products:[*-][C][C][O]","diol_oxidation_two_sites":"products:[*]=[*]([C])[C][O]|[*]=[*][C]([C])[O]"}},"smirks.nested_recursive":{"value":"always_true","observed":{"nested_absent_apply":"products:[C][C]"}},"smirks.neutralize_written_charge":{"value":"untyped","observed":{"Nplus_to_N":"products:[*][C]"}},"smirks.new_bond_query_order":{"value":"rejected","observed":{"add_methyl_any_bond":"error"}},"smirks.outcome_multiplicity":{"value":"unique_atom_sets","observed":{"bond_order_count":"outcomes:1","ring_open_count":"outcomes:1","star_identity_count":"outcomes:3"}},"smirks.product_h_atom_added":{"value":"untyped","observed":{"protonate_alkoxide":"products:[*H-][C][C]"}},"smirks.product_h_pin":{"value":"labels","observed":{"pin_CH2":"products:[C][C]","pin_CH2_X":"products:CC"}},"smirks.product_only_map":{"value":"rejected","observed":{"product_only_N":"error"}},"smirks.product_plusplus":{"value":"untyped","observed":{"N_pp":"products:[*+2][C]"}},"smirks.reactant_aromaticity":{"value":"not_perceived","observed":{"kekule_benzene_aliphatic_C":"products:[C]1=[C][C]=[C][C]=[C]1","pyranone_aliphatic_C":"products:[O]=[C]1[C]=[C][O][C]=[C]1","pyranone_aromatic_spelling":"products:","tropone_aliphatic_C":"products:[O]=[C]1[C]=[C][C]=[C][C]=[C]1"}},"smirks.reactant_query_syntax":{"value":"full_smarts","observed":{"and_low":"products:[C][C]#[N]","connectivity_X":"products:[C][C]","or_list":"products:[C][C]","plain_control":"products:*=*"}},"smirks.recursive_in_reactant":{"value":"supported","observed":{"rec_on_map":"products:[C][C][O]"}},"smirks.sanitize_policy":{"value":"untyped","observed":{"ether_S":"products:[*]=[*][C]","iminium_S":"products:[*]=[N]([C])[C]"}},"smirks.sanitizer":{"value":"native","observed":{"identity_sanitized":"products:[C][C]"}},"smirks.site_choice_order_dependence":{"value":"order_independent","observed":{"symmetric_delete":"error","two_site_oxidation":"products:[*]=[*]([C])[C][O]|[*]=[*][C]([C])[O]"}},"smirks.star_on_explicit_h":{"value":"untyped","observed":{"star_chlorinate_X":"products:C*Cl|[*H4]Cl","star_chlorinate":"products:*Cl"}},"smirks.star_retype":{"value":"rejected","observed":{"acetyl_star":"error"}},"smirks.stereo_carried":{"value":"labels","observed":{"map_on_methyl_R":"products:[C][C]([N])[O]","map_on_methyl_S":"products:[C][C]([N])[O]","map_on_hydroxyl_control":"products:[C][C]([N])[O]"}},"smirks.undefined_order_both_sides":{"value":"noop_applied","observed":{"undef_both":"products:[C][C]"}},"smirks.undefined_product_bond":{"value":"rejected","observed":{"undef_order":"error"}},"smirks.unmapped_reactant_deleted":{"value":"labels_h_orphaned","observed":{"drop_unmapped_O":"products:[C][C]","drop_unmapped_O_X":"products:[CH2]C.[H]","drop_unmapped_N":"products:[C][C][C]"}},"smirks.unwritten_charge":{"value":"labels","observed":{"N_keep_on_ammonium":"products:[C][N+]"}},"smirks.valence_invalid_raw":{"value":"untyped","observed":{"ether_trap":"products:[*]=[*][C]"}},"syntax.aliphatic_any_A":{"value":"supported","observed":{"aliphatic_any_A":"match:1"}},"syntax.aliphatic_hetero_neighbors_Z":{"value":"rejected","observed":{"aliphatic_hetero_neighbors_Z":"error"}},"syntax.aromatic_selenium":{"value":"supported","observed":{"aromatic_selenium":"match:1"}},"syntax.cdk_hash_X":{"value":"supported","observed":{"cdk_hash_X":"match:1"}},"syntax.charge_plusplus":{"value":"charge2","observed":{"pp_on_n2plus":"match:1","pp_on_n1plus":"match:0"}},"syntax.component_grouping":{"value":"enforced","observed":{"separate_groups_same_component":"match:0","same_group_two_components":"match:0"}},"syntax.dative_bond":{"value":"rejected","observed":{"dative_parse":"error"}},"syntax.dot_disconnected":{"value":"supported","observed":{"dot_on_methanol":"match:1"}},"syntax.hetero_neighbors_z":{"value":"rejected","observed":{"hetero_neighbors_z":"error"}},"syntax.hybridization":{"value":"cdk_one_based_untyped","observed":{"hyb_digit0":"error","hyb_digit7":"ok","hyb_sp3_ethane":"match:0","hyb_bare_ethyne":"error"}},"syntax.insaturation_i":{"value":"supported","observed":{"i1_ethene":"match:2"}},"syntax.periodic_group_G":{"value":"rejected","observed":{"periodic_group_G":"error"}},"syntax.range_counts":{"value":"supported","observed":{"range_counts":"match:3"}},"syntax.ring_size_k":{"value":"rejected","observed":{"ring_size_k":"error"}},"syntax.unclosed_ring":{"value":"rejected","observed":{"unclosed":"error"}}}},{"id":"chematic@1.0.30","adapter":"chematic","version":"1.0.30","generated":"2026-10-03","flags":{"match.aromatic_valence":{"value":"aromatic_bond_as_one","observed":{"benzene_v4":"match:0","benzene_v3":"match:6","pyrrole_n_v3":"match:1"}},"match.aromaticity_exocyclic_carbonyl":{"value":"daylight_like","observed":{"pyranone_c":"match:5","tropone_c":"match:7","benzene_control":"match:6"}},"match.atom_chirality":{"value":"ignored","observed":{"opposite":"match:1","unspecified_mol":"match:1"}},"match.bond_stereo":{"value":"branch_direction_inverted","observed":{"trans_vs_cis":"match:0","trans_vs_unspecified":"match:0","trans_vs_cis_branch_spelling":"match:1","cis_all_spellings":"match:0 / match:1","trans_vs_trans_branch_spelling":"match:0"}},"match.compound_bond_kekule":{"value":"aromatic_aware","observed":{"ring_single_benzene":"match:0","single_and_ring_benzene":"match:0","double_and_ring_benzene":"match:0","ring_bond_control":"match:6"}},"match.count_semantics":{"value":"unique_atom_sets","observed":{"ethane_CC":"match:1","benzene_ring6":"match:1","asymmetric_control":"match:1"}},"match.degree_with_explicit_h":{"value":"counts_h_atoms","observed":{"CD1_explicit":"match:0","CD1_implicit":"match:2"}},"match.directional_bond":{"value":"never_without_stereo","observed":{"slash_benzene":"match:0","slash_ethane":"match:0","backslash_benzene":"match:0"}},"match.double_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"double_on_benzene":"match:0","double_on_kekule_benzene":"match:0","double_control_ethene":"match:1"}},"match.h_atom_query":{"value":"bracket_h_not_atom","observed":{"CH_implicit":"match:0","CH_explicit":"match:0","hash1_explicit":"match:4"}},"match.h_count_with_explicit_h":{"value":"counts_h_atoms","observed":{"CH3_explicit":"match:2"}},"match.implicit_h_lowercase_h":{"value":"no_match","observed":{"h_bare_ethane":"match:0"}},"match.nested_recursive":{"value":"evaluated","observed":{"nested_absent":"match:0","nested_present":"match:1"}},"match.or_with_any_atom":{"value":"correct","observed":{"star_or_n_on_ethane":"match:2","star_or_h_on_methane":"match:1"}},"match.proton":{"value":"no_match","observed":{"proton":"match:0"}},"match.ring_count_basis":{"value":"sssr","observed":{"R3_cubane":"match:4","R2_bicyclo222":"match:4","R3_adamantane":"match:1","R1_adamantane":"match:3","R2_norbornane":"match:3","R2_naphthalene_control":"match:2"}},"match.ring_size_semantics":{"value":"smallest_ring","observed":{"r6_hydrindane":"match:4","r5_hydrindane":"match:5","r6_indane_like_spiro":"match:5"}},"match.single_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"single_on_benzene":"match:0","single_any_atoms_benzene":"match:0"}},"match.substituted_aromatic_perception":{"value":"ok","observed":{"toluene_any":"match:7","pyridine_any":"match:6","benzene_control":"match:6"}},"match.unspecified_isotope":{"value":"isotope_ignored","observed":{"12C_on_methane":"match:1","13C_on_labeled_ethane":"match:2"}},"products.byproduct_filter":{"value":"kept","observed":{"dehydroxylation_water":"products:CC.O","deamination_nh3":"products:CC.N","dechlorination_hcl":"products:CC.Cl","o_demethylation_hcho":"products:C=O.CCO","methanol_control":"products:CCO.CO"}},"products.fragment_objects":{"value":"per_template_component","observed":{"ester_hydrolysis":"objects:CC(=O)O + CCO","chain_scission_sites":"objects:C + CCC|CC + CC","ether_both_sides_same":"objects:CC + CC"}},"products.grouped_product_component":{"value":"rejected","observed":{"grouped_cleavage":"error"}},"products.new_double_bond_h":{"value":"h_adjusted","observed":{"n_deethylation_aldehyde":"products:CC=O.CNC","decarboxylation_co2":"products:CCC.O=C=O"}},"products.spectator_components":{"value":"dropped","observed":{"amine_with_butane":"objects:C[NH3+]","ethanol_with_water":"products:CCO"}},"products.validity_filter":{"value":"kept","observed":{"hydroperoxide":"products:CCOO","ketene":"products:C=C=O","thiol_cleavage_h2s":"products:CC.S","gem_diol_kept":"products:CC(O)O"}},"smirks.add_atom_with_explicit_h":{"value":"empty","observed":{"addCl_X":"products:"}},"smirks.add_unmapped_atom":{"value":"added","observed":{"methylate_O":"products:CCOC"}},"smirks.aromatic_output_form":{"value":"aromatic","observed":{"toluene_methyl_identity":"products:Cc1ccccc1"}},"smirks.aromatic_product":{"value":"aromatic_preserved","observed":{"benzene_identity":"products:c1ccccc1","hydroxylate_benzene":"products:Oc1ccccc1"}},"smirks.bond_order_decrease_retyping":{"value":"retyped","observed":{"acetaldehyde_reduction":"products:CCO","nitrile_reduction":"products:CC=N"}},"smirks.charge_hcount":{"value":"cation_adds_h","observed":{"carbocation":"products:C[CH4+]","carbanion":"products:[CH2-]C","oxonium":"products:CC[OH2+]","alkoxide":"products:CC[O-]"}},"smirks.charge_plus2_hcount":{"value":"h_added","observed":{"N_plus2":"products:C[NH4+2]"}},"smirks.colon_product_bond":{"value":"aromatic_bond_written","observed":{"colon_on_ethane":"products:C:C"}},"smirks.delete_mapped_by_omission":{"value":"deleted","observed":{"drop_O":"products:CC"}},"smirks.disconnect":{"value":"split","observed":{"split_ethane":"products:C.C"}},"smirks.edits_with_explicit_h":{"value":"empty","observed":{"CC_to_CdC_X":"products:","ethanol_oxid_X":"products:"}},"smirks.element_change":{"value":"ignored","observed":{"C_to_N":"products:CC"}},"smirks.equivalent_h_mappings":{"value":"per_h_atom","observed":{"ethanol_oxidation_H_X":"outcomes:2","methane_chlorination_H_X":"outcomes:4"}},"smirks.explicit_h_apply":{"value":"edits_empty","observed":{"deprotonate_X":"products:","cleave_X":"products:CC.O","methylate_X":"products:"}},"smirks.fragmented_reactant":{"value":"rejected","observed":{"frag_template":"error"}},"smirks.h_atom_in_template":{"value":"explicit_only","observed":{"CH_delete_implicit":"products:","CH_delete_explicit":"products:C","OH_deprotonate_implicit":"products:","OH_deprotonate_explicit":"products:CC[O-]"}},"smirks.hcount_query_explicit_h":{"value":"empty","observed":{"CH3_identity_X":"products:"}},"smirks.identity_labels":{"value":"organic","observed":{"ident_implicit":"products:CC","ident_explicit":"products:CC"}},"smirks.mapped_aromatic_nh":{"value":"h_lost_when_mapped","observed":{"pyrrole_n_identity":"products:c1ccnc1","pyrrole_c_identity_control":"products:c1cc[nH]c1"}},"smirks.multi_site_application":{"value":"per_site","observed":{"diol_deprotonate":"products:[O-]CCO","diol_oxidation_two_sites":"products:CC(=O)CO|CC(O)C=O"}},"smirks.nested_recursive":{"value":"rejected","observed":{"nested_absent_apply":"error"}},"smirks.neutralize_written_charge":{"value":"neutralized","observed":{"Nplus_to_N":"products:CN"}},"smirks.new_bond_query_order":{"value":"query_bond_copied","observed":{"add_methyl_any_bond":"products:CC~C"}},"smirks.outcome_multiplicity":{"value":"deduped_products","observed":{"bond_order_count":"outcomes:1","ring_open_count":"outcomes:1","star_identity_count":"outcomes:2"}},"smirks.product_h_atom_added":{"value":"protonated_reset","observed":{"protonate_alkoxide":"products:CCO"}},"smirks.product_h_pin":{"value":"rejected_empty","observed":{"pin_CH2":"products:","pin_CH2_X":"products:"}},"smirks.product_only_map":{"value":"created","observed":{"product_only_N":"products:CCN"}},"smirks.product_plusplus":{"value":"same_as_plus2","observed":{"N_pp":"products:C[NH4+2]"}},"smirks.reactant_aromaticity":{"value":"not_perceived","observed":{"kekule_benzene_aliphatic_C":"products:C1=CC=CC=C1","pyranone_aliphatic_C":"products:O=C1C=COC=C1","pyranone_aromatic_spelling":"products:","tropone_aliphatic_C":"products:O=C1C=CC=CC=C1"}},"smirks.reactant_query_syntax":{"value":"smiles_only","observed":{"and_low":"error","connectivity_X":"error","or_list":"error","plain_control":"products:C=C"}},"smirks.recursive_in_reactant":{"value":"rejected","observed":{"rec_on_map":"error"}},"smirks.sanitize_policy":{"value":"keeps_hypervalent_n","observed":{"ether_S":"products:","iminium_S":"products:C=N(C)C"}},"smirks.sanitizer":{"value":"native","observed":{"identity_sanitized":"products:CC"}},"smirks.site_choice_order_dependence":{"value":"mapping_order_dependent","observed":{"symmetric_delete":"products:C / products:CO","two_site_oxidation":"products:CC(=O)CO|CC(O)C=O"}},"smirks.star_on_explicit_h":{"value":"explicit_edits_empty","observed":{"star_chlorinate_X":"products:","star_chlorinate":"products:CCl"}},"smirks.star_retype":{"value":"keeps_reactant_atom","observed":{"acetyl_star":"products:CCOC(C)=O"}},"smirks.stereo_carried":{"value":"flipped_by_neighbor_order","observed":{"map_on_methyl_R":"products:C[C@@H](N)O","map_on_methyl_S":"products:C[C@H](N)O","map_on_hydroxyl_control":"products:C[C@H](N)O"}},"smirks.undefined_order_both_sides":{"value":"rejected","observed":{"undef_both":"error"}},"smirks.undefined_product_bond":{"value":"rejected","observed":{"undef_order":"error"}},"smirks.unmapped_reactant_deleted":{"value":"deleted","observed":{"drop_unmapped_O":"products:CC","drop_unmapped_O_X":"products:CC","drop_unmapped_N":"products:CCC"}},"smirks.unwritten_charge":{"value":"reset","observed":{"N_keep_on_ammonium":"products:CN"}},"smirks.valence_invalid_raw":{"value":"dropped_at_apply","observed":{"ether_trap":"products:"}},"syntax.aliphatic_any_A":{"value":"supported","observed":{"aliphatic_any_A":"match:1"}},"syntax.aliphatic_hetero_neighbors_Z":{"value":"rejected","observed":{"aliphatic_hetero_neighbors_Z":"error"}},"syntax.aromatic_selenium":{"value":"supported","observed":{"aromatic_selenium":"match:1"}},"syntax.cdk_hash_X":{"value":"rejected","observed":{"cdk_hash_X":"error"}},"syntax.charge_plusplus":{"value":"charge2","observed":{"pp_on_n2plus":"match:1","pp_on_n1plus":"match:0"}},"syntax.component_grouping":{"value":"rejected","observed":{"separate_groups_same_component":"error","same_group_two_components":"error"}},"syntax.dative_bond":{"value":"rejected","observed":{"dative_parse":"error"}},"syntax.dot_disconnected":{"value":"supported","observed":{"dot_on_methanol":"match:1"}},"syntax.hetero_neighbors_z":{"value":"rejected","observed":{"hetero_neighbors_z":"error"}},"syntax.hybridization":{"value":"lenient_digits","observed":{"hyb_digit0":"ok","hyb_digit7":"ok","hyb_sp3_ethane":"match:2","hyb_bare_ethyne":"error"}},"syntax.insaturation_i":{"value":"parsed_no_match","observed":{"i1_ethene":"match:0"}},"syntax.periodic_group_G":{"value":"rejected","observed":{"periodic_group_G":"error"}},"syntax.range_counts":{"value":"rejected","observed":{"range_counts":"error"}},"syntax.ring_size_k":{"value":"supported","observed":{"ring_size_k":"match:6"}},"syntax.unclosed_ring":{"value":"rejected","observed":{"unclosed":"error"}}}},{"id":"openbabel@3.2.1","adapter":"openbabel","version":"3.2.1","generated":"2026-10-03","flags":{"match.aromatic_valence":{"value":"kekule_total","observed":{"benzene_v4":"match:6","benzene_v3":"match:0","pyrrole_n_v3":"match:1"}},"match.aromaticity_exocyclic_carbonyl":{"value":"daylight_like","observed":{"pyranone_c":"match:5","tropone_c":"match:7","benzene_control":"match:6"}},"match.atom_chirality":{"value":"enforced","observed":{"opposite":"match:0","unspecified_mol":"match:0"}},"match.bond_stereo":{"value":"ignored","observed":{"trans_vs_cis":"match:1","trans_vs_unspecified":"match:1","trans_vs_cis_branch_spelling":"match:1","cis_all_spellings":"match:1","trans_vs_trans_branch_spelling":"match:1"}},"match.compound_bond_kekule":{"value":"aromatic_aware","observed":{"ring_single_benzene":"match:0","single_and_ring_benzene":"match:0","double_and_ring_benzene":"match:0","ring_bond_control":"match:6"}},"match.count_semantics":{"value":"unique_atom_sets","observed":{"ethane_CC":"match:1","benzene_ring6":"match:1","asymmetric_control":"match:1"}},"match.degree_with_explicit_h":{"value":"counts_h_atoms","observed":{"CD1_explicit":"match:0","CD1_implicit":"match:2"}},"match.directional_bond":{"value":"single_only","observed":{"slash_benzene":"match:0","slash_ethane":"match:1","backslash_benzene":"match:0"}},"match.double_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"double_on_benzene":"match:0","double_on_kekule_benzene":"match:0","double_control_ethene":"match:1"}},"match.h_atom_query":{"value":"implicit_matchable","observed":{"CH_implicit":"match:4","CH_explicit":"match:4","hash1_explicit":"match:4"}},"match.h_count_with_explicit_h":{"value":"counts_h_atoms","observed":{"CH3_explicit":"match:2"}},"match.implicit_h_lowercase_h":{"value":"no_match","observed":{"h_bare_ethane":"match:0"}},"match.nested_recursive":{"value":"evaluated","observed":{"nested_absent":"match:0","nested_present":"match:1"}},"match.or_with_any_atom":{"value":"correct","observed":{"star_or_n_on_ethane":"match:2","star_or_h_on_methane":"match:1"}},"match.proton":{"value":"no_match","observed":{"proton":"match:0"}},"match.ring_count_basis":{"value":"sssr","observed":{"R3_cubane":"match:4","R2_bicyclo222":"match:4","R3_adamantane":"match:1","R1_adamantane":"match:3","R2_norbornane":"match:3","R2_naphthalene_control":"match:2"}},"match.ring_size_semantics":{"value":"any_ring","observed":{"r6_hydrindane":"match:6","r5_hydrindane":"match:5","r6_indane_like_spiro":"match:6"}},"match.single_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"single_on_benzene":"match:0","single_any_atoms_benzene":"match:0"}},"match.substituted_aromatic_perception":{"value":"ok","observed":{"toluene_any":"match:7","pyridine_any":"match:6","benzene_control":"match:6"}},"match.unspecified_isotope":{"value":"natural_is_unspecified","observed":{"12C_on_methane":"match:0","13C_on_labeled_ethane":"match:1"}},"products.byproduct_filter":{"value":"rejected","observed":{"dehydroxylation_water":"error","deamination_nh3":"error","dechlorination_hcl":"error","o_demethylation_hcho":"error","methanol_control":"error"}},"products.fragment_objects":{"value":"rejected","observed":{"ester_hydrolysis":"error","chain_scission_sites":"error","ether_both_sides_same":"error"}},"products.grouped_product_component":{"value":"rejected","observed":{"grouped_cleavage":"error"}},"products.new_double_bond_h":{"value":"rejected","observed":{"n_deethylation_aldehyde":"error","decarboxylation_co2":"error"}},"products.spectator_components":{"value":"kept","observed":{"amine_with_butane":"objects:CCCC.C[NH3+]","ethanol_with_water":"error"}},"products.validity_filter":{"value":"kept","observed":{"hydroperoxide":"error","ketene":"products:C=C=O","thiol_cleavage_h2s":"error","gem_diol_kept":"products:CCO"}},"smirks.add_atom_with_explicit_h":{"value":"rejected","observed":{"addCl_X":"error"}},"smirks.add_unmapped_atom":{"value":"rejected","observed":{"methylate_O":"error"}},"smirks.aromatic_output_form":{"value":"rejected","observed":{"toluene_methyl_identity":"error"}},"smirks.aromatic_product":{"value":"rejected","observed":{"benzene_identity":"error","hydroxylate_benzene":"error"}},"smirks.bond_order_decrease_retyping":{"value":"retyped","observed":{"acetaldehyde_reduction":"products:CCO","nitrile_reduction":"products:CC=N"}},"smirks.charge_hcount":{"value":"all_sites_in_place","observed":{"carbocation":"products:[CH2+][CH2+]","carbanion":"products:[CH2-][CH2-]","oxonium":"products:CC[OH2+]","alkoxide":"products:CC[O-]"}},"smirks.charge_plus2_hcount":{"value":"valence_reduced","observed":{"N_plus2":"products:C[NH2+2]"}},"smirks.colon_product_bond":{"value":"labels","observed":{"colon_on_ethane":"products:[C][C]"}},"smirks.delete_mapped_by_omission":{"value":"deleted_no_refill","observed":{"drop_O":"products:[CH2]C"}},"smirks.disconnect":{"value":"rejected","observed":{"split_ethane":"error"}},"smirks.edits_with_explicit_h":{"value":"h_not_adjusted","observed":{"CC_to_CdC_X":"products:[CH3]=[CH3]","ethanol_oxid_X":"products:C[CH2]=[OH]"}},"smirks.element_change":{"value":"corrupt","observed":{"C_to_N":"products:[NH3][NH3]"}},"smirks.equivalent_h_mappings":{"value":"single_application","observed":{"ethanol_oxidation_H_X":"outcomes:1","methane_chlorination_H_X":"error"}},"smirks.explicit_h_apply":{"value":"h_kept","observed":{"deprotonate_X":"products:CC[OH-]","cleave_X":"error","methylate_X":"error"}},"smirks.fragmented_reactant":{"value":"rejected","observed":{"frag_template":"error"}},"smirks.h_atom_in_template":{"value":"implicit_matchable","observed":{"CH_delete_implicit":"error","CH_delete_explicit":"error","OH_deprotonate_implicit":"products:CC[O-]","OH_deprotonate_explicit":"products:CC[OH-]"}},"smirks.hcount_query_explicit_h":{"value":"rejected","observed":{"CH3_identity_X":"error"}},"smirks.identity_labels":{"value":"rejected","observed":{"ident_implicit":"error","ident_explicit":"error"}},"smirks.mapped_aromatic_nh":{"value":"rejected","observed":{"pyrrole_n_identity":"error","pyrrole_c_identity_control":"error"}},"smirks.multi_site_application":{"value":"all_sites_in_place","observed":{"diol_deprotonate":"products:[O-]CC[O-]","diol_oxidation_two_sites":"products:CC(=O)C=O"}},"smirks.nested_recursive":{"value":"rejected","observed":{"nested_absent_apply":"error"}},"smirks.neutralize_written_charge":{"value":"neutralized","observed":{"Nplus_to_N":"products:CN"}},"smirks.new_bond_query_order":{"value":"rejected","observed":{"add_methyl_any_bond":"error"}},"smirks.outcome_multiplicity":{"value":"single_application","observed":{"bond_order_count":"outcomes:1","ring_open_count":"error","star_identity_count":"error"}},"smirks.product_h_atom_added":{"value":"rejected","observed":{"protonate_alkoxide":"error"}},"smirks.product_h_pin":{"value":"rejected","observed":{"pin_CH2":"error","pin_CH2_X":"error"}},"smirks.product_only_map":{"value":"rejected","observed":{"product_only_N":"error"}},"smirks.product_plusplus":{"value":"same_as_plus2","observed":{"N_pp":"products:C[NH2+2]"}},"smirks.reactant_aromaticity":{"value":"rejected","observed":{"kekule_benzene_aliphatic_C":"error","pyranone_aliphatic_C":"error","pyranone_aromatic_spelling":"error","tropone_aliphatic_C":"error"}},"smirks.reactant_query_syntax":{"value":"smiles_only","observed":{"and_low":"error","connectivity_X":"error","or_list":"error","plain_control":"products:C=C"}},"smirks.recursive_in_reactant":{"value":"rejected","observed":{"rec_on_map":"error"}},"smirks.sanitize_policy":{"value":"keeps_all","observed":{"ether_S":"products:C=O=C","iminium_S":"products:C=N(=C)=C"}},"smirks.sanitizer":{"value":"native","observed":{"identity_sanitized":"error"}},"smirks.site_choice_order_dependence":{"value":"mapping_order_dependent","observed":{"symmetric_delete":"products:[CH2]O / products:[CH3].[OH]","two_site_oxidation":"products:CC(=O)C=O"}},"smirks.star_on_explicit_h":{"value":"rejected","observed":{"star_chlorinate_X":"error","star_chlorinate":"error"}},"smirks.star_retype":{"value":"corrupt","observed":{"acetyl_star":"products:[*H]CC"}},"smirks.stereo_carried":{"value":"rejected","observed":{"map_on_methyl_R":"error","map_on_methyl_S":"error","map_on_hydroxyl_control":"error"}},"smirks.undefined_order_both_sides":{"value":"rejected","observed":{"undef_both":"error"}},"smirks.undefined_product_bond":{"value":"skipped","observed":{"undef_order":"products:CC"}},"smirks.unmapped_reactant_deleted":{"value":"rejected","observed":{"drop_unmapped_O":"error","drop_unmapped_O_X":"error","drop_unmapped_N":"error"}},"smirks.unwritten_charge":{"value":"rejected","observed":{"N_keep_on_ammonium":"error"}},"smirks.valence_invalid_raw":{"value":"hypervalent","observed":{"ether_trap":"products:C=O=C"}},"syntax.aliphatic_any_A":{"value":"supported","observed":{"aliphatic_any_A":"match:1"}},"syntax.aliphatic_hetero_neighbors_Z":{"value":"rejected","observed":{"aliphatic_hetero_neighbors_Z":"error"}},"syntax.aromatic_selenium":{"value":"supported","observed":{"aromatic_selenium":"match:1"}},"syntax.cdk_hash_X":{"value":"rejected","observed":{"cdk_hash_X":"error"}},"syntax.charge_plusplus":{"value":"charge2","observed":{"pp_on_n2plus":"match:1","pp_on_n1plus":"match:0"}},"syntax.component_grouping":{"value":"ignored","observed":{"separate_groups_same_component":"match:1","same_group_two_components":"error"}},"syntax.dative_bond":{"value":"rejected","observed":{"dative_parse":"error"}},"syntax.dot_disconnected":{"value":"rejected","observed":{"dot_on_methanol":"error"}},"syntax.hetero_neighbors_z":{"value":"rejected","observed":{"hetero_neighbors_z":"error"}},"syntax.hybridization":{"value":"openbabel_bare","observed":{"hyb_digit0":"ok","hyb_digit7":"ok","hyb_sp3_ethane":"match:2","hyb_bare_ethyne":"match:2"}},"syntax.insaturation_i":{"value":"rejected","observed":{"i1_ethene":"error"}},"syntax.periodic_group_G":{"value":"rejected","observed":{"periodic_group_G":"error"}},"syntax.range_counts":{"value":"rejected","observed":{"range_counts":"error"}},"syntax.ring_size_k":{"value":"rejected","observed":{"ring_size_k":"error"}},"syntax.unclosed_ring":{"value":"rejected","observed":{"unclosed":"error"}}}},{"id":"rdkit@2026.03.6","adapter":"rdkit","version":"2026.03.6","generated":"2026-10-03","flags":{"match.aromatic_valence":{"value":"kekule_total","observed":{"benzene_v4":"match:6","benzene_v3":"match:0","pyrrole_n_v3":"match:1"}},"match.aromaticity_exocyclic_carbonyl":{"value":"daylight_like","observed":{"pyranone_c":"match:5","tropone_c":"match:7","benzene_control":"match:6"}},"match.atom_chirality":{"value":"ignored","observed":{"opposite":"match:1","unspecified_mol":"match:1"}},"match.bond_stereo":{"value":"ignored","observed":{"trans_vs_cis":"match:1","trans_vs_unspecified":"match:1","trans_vs_cis_branch_spelling":"match:1","cis_all_spellings":"match:1","trans_vs_trans_branch_spelling":"match:1"}},"match.compound_bond_kekule":{"value":"aromatic_aware","observed":{"ring_single_benzene":"match:0","single_and_ring_benzene":"match:0","double_and_ring_benzene":"match:0","ring_bond_control":"match:6"}},"match.count_semantics":{"value":"unique_atom_sets","observed":{"ethane_CC":"match:1","benzene_ring6":"match:1","asymmetric_control":"match:1"}},"match.degree_with_explicit_h":{"value":"counts_h_atoms","observed":{"CD1_explicit":"match:0","CD1_implicit":"match:2"}},"match.directional_bond":{"value":"single_or_aromatic","observed":{"slash_benzene":"match:6","slash_ethane":"match:1","backslash_benzene":"match:6"}},"match.double_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"double_on_benzene":"match:0","double_on_kekule_benzene":"match:0","double_control_ethene":"match:1"}},"match.h_atom_query":{"value":"explicit_only","observed":{"CH_implicit":"match:0","CH_explicit":"match:4","hash1_explicit":"match:4"}},"match.h_count_with_explicit_h":{"value":"counts_h_atoms","observed":{"CH3_explicit":"match:2"}},"match.implicit_h_lowercase_h":{"value":"at_least_one","observed":{"h_bare_ethane":"match:2"}},"match.nested_recursive":{"value":"evaluated","observed":{"nested_absent":"match:0","nested_present":"match:1"}},"match.or_with_any_atom":{"value":"correct","observed":{"star_or_n_on_ethane":"match:2","star_or_h_on_methane":"match:1"}},"match.proton":{"value":"matches","observed":{"proton":"match:1"}},"match.ring_count_basis":{"value":"symmetric","observed":{"R3_cubane":"match:8","R2_bicyclo222":"match:6","R3_adamantane":"match:4","R1_adamantane":"match:0","R2_norbornane":"match:4","R2_naphthalene_control":"match:2"}},"match.ring_size_semantics":{"value":"smallest_ring","observed":{"r6_hydrindane":"match:4","r5_hydrindane":"match:5","r6_indane_like_spiro":"match:5"}},"match.single_bond_vs_aromatic":{"value":"excludes_aromatic","observed":{"single_on_benzene":"match:0","single_any_atoms_benzene":"match:0"}},"match.substituted_aromatic_perception":{"value":"ok","observed":{"toluene_any":"match:7","pyridine_any":"match:6","benzene_control":"match:6"}},"match.unspecified_isotope":{"value":"natural_is_unspecified","observed":{"12C_on_methane":"match:0","13C_on_labeled_ethane":"match:1"}},"products.byproduct_filter":{"value":"kept","observed":{"dehydroxylation_water":"products:CC.O","deamination_nh3":"products:CC.N","dechlorination_hcl":"products:CC.Cl","o_demethylation_hcho":"products:C=O.CCO","methanol_control":"products:CCO.CO"}},"products.fragment_objects":{"value":"per_template_component","observed":{"ester_hydrolysis":"objects:CC(=O)O + CCO","chain_scission_sites":"objects:C + CCC|CC + CC","ether_both_sides_same":"objects:CC + CC"}},"products.grouped_product_component":{"value":"one_object","observed":{"grouped_cleavage":"objects:CC.O"}},"products.new_double_bond_h":{"value":"h_adjusted","observed":{"n_deethylation_aldehyde":"products:CC=O.CNC","decarboxylation_co2":"products:CCC.O=C=O"}},"products.spectator_components":{"value":"dropped","observed":{"amine_with_butane":"objects:C[NH3+]","ethanol_with_water":"products:CCO"}},"products.validity_filter":{"value":"kept","observed":{"hydroperoxide":"products:CCOO","ketene":"products:C=C=O","thiol_cleavage_h2s":"products:CC.S","gem_diol_kept":"products:CC(O)O"}},"smirks.add_atom_with_explicit_h":{"value":"h_aware","observed":{"addCl_X":"products:CCCl"}},"smirks.add_unmapped_atom":{"value":"added","observed":{"methylate_O":"products:CCOC"}},"smirks.aromatic_output_form":{"value":"aromatic","observed":{"toluene_methyl_identity":"products:Cc1ccccc1"}},"smirks.aromatic_product":{"value":"aromatic_preserved","observed":{"benzene_identity":"products:c1ccccc1","hydroxylate_benzene":"products:Oc1ccccc1"}},"smirks.bond_order_decrease_retyping":{"value":"retyped","observed":{"acetaldehyde_reduction":"products:CCO","nitrile_reduction":"products:CC=N"}},"smirks.charge_hcount":{"value":"valence_rule","observed":{"carbocation":"products:[CH2+]C","carbanion":"products:[CH2-]C","oxonium":"products:CC[OH2+]","alkoxide":"products:CC[O-]"}},"smirks.charge_plus2_hcount":{"value":"valence_reduced","observed":{"N_plus2":"products:C[NH2+2]"}},"smirks.colon_product_bond":{"value":"aromatic_flag_set","observed":{"colon_on_ethane":"products:cc"}},"smirks.delete_mapped_by_omission":{"value":"deleted","observed":{"drop_O":"products:CC"}},"smirks.disconnect":{"value":"split","observed":{"split_ethane":"products:C.C"}},"smirks.edits_with_explicit_h":{"value":"h_aware","observed":{"CC_to_CdC_X":"products:C=C","ethanol_oxid_X":"products:CC=O"}},"smirks.element_change":{"value":"applied","observed":{"C_to_N":"products:CN"}},"smirks.equivalent_h_mappings":{"value":"per_h_atom","observed":{"ethanol_oxidation_H_X":"outcomes:2","methane_chlorination_H_X":"outcomes:4"}},"smirks.explicit_h_apply":{"value":"h_aware","observed":{"deprotonate_X":"products:CC[O-]","cleave_X":"products:CC.O","methylate_X":"products:CCOC"}},"smirks.fragmented_reactant":{"value":"intermolecular_pair","observed":{"frag_template":"products:COCO"}},"smirks.h_atom_in_template":{"value":"explicit_only","observed":{"CH_delete_implicit":"products:","CH_delete_explicit":"products:C","OH_deprotonate_implicit":"products:","OH_deprotonate_explicit":"products:CC[O-]"}},"smirks.hcount_query_explicit_h":{"value":"pin_adds_h","observed":{"CH3_identity_X":"products:C[CH6]"}},"smirks.identity_labels":{"value":"organic","observed":{"ident_implicit":"products:CC","ident_explicit":"products:CC"}},"smirks.mapped_aromatic_nh":{"value":"preserved","observed":{"pyrrole_n_identity":"products:c1cc[nH]c1","pyrrole_c_identity_control":"products:c1cc[nH]c1"}},"smirks.multi_site_application":{"value":"per_site","observed":{"diol_deprotonate":"products:[O-]CCO","diol_oxidation_two_sites":"products:CC(=O)CO|CC(O)C=O"}},"smirks.nested_recursive":{"value":"evaluated","observed":{"nested_absent_apply":"products:"}},"smirks.neutralize_written_charge":{"value":"inherited","observed":{"Nplus_to_N":"products:C[NH3+]"}},"smirks.new_bond_query_order":{"value":"query_bond_copied","observed":{"add_methyl_any_bond":"products:CC~C"}},"smirks.outcome_multiplicity":{"value":"all_mappings","observed":{"bond_order_count":"outcomes:2","ring_open_count":"outcomes:8","star_identity_count":"outcomes:3"}},"smirks.product_h_atom_added":{"value":"h_dropped","observed":{"protonate_alkoxide":"products:CC[O-]"}},"smirks.product_h_pin":{"value":"authoritative","observed":{"pin_CH2":"products:[CH2]C","pin_CH2_X":"products:C[CH5]"}},"smirks.product_only_map":{"value":"created","observed":{"product_only_N":"products:CCN"}},"smirks.product_plusplus":{"value":"same_as_plus2","observed":{"N_pp":"products:C[NH2+2]"}},"smirks.reactant_aromaticity":{"value":"daylight_perceived","observed":{"kekule_benzene_aliphatic_C":"products:","pyranone_aliphatic_C":"products:","pyranone_aromatic_spelling":"products:","tropone_aliphatic_C":"products:"}},"smirks.reactant_query_syntax":{"value":"full_smarts","observed":{"and_low":"products:CC#N","connectivity_X":"products:CC","or_list":"products:CC","plain_control":"products:C=C"}},"smirks.recursive_in_reactant":{"value":"supported","observed":{"rec_on_map":"products:CCO"}},"smirks.sanitize_policy":{"value":"drops_invalid","observed":{"ether_S":"products:","iminium_S":"products:"}},"smirks.sanitizer":{"value":"native","observed":{"identity_sanitized":"products:CC"}},"smirks.site_choice_order_dependence":{"value":"order_independent","observed":{"symmetric_delete":"products:C|CO","two_site_oxidation":"products:CC(=O)CO|CC(O)C=O"}},"smirks.star_on_explicit_h":{"value":"h_atoms_when_explicit","observed":{"star_chlorinate_X":"products:CCl|C[H]Cl","star_chlorinate":"products:CCl"}},"smirks.star_retype":{"value":"keeps_reactant_atom","observed":{"acetyl_star":"products:CCOC(C)=O"}},"smirks.stereo_carried":{"value":"preserved","observed":{"map_on_methyl_R":"products:C[C@H](N)O","map_on_methyl_S":"products:C[C@@H](N)O","map_on_hydroxyl_control":"products:C[C@H](N)O"}},"smirks.undefined_order_both_sides":{"value":"first_alternative","observed":{"undef_both":"products:C=C"}},"smirks.undefined_product_bond":{"value":"first_alternative","observed":{"undef_order":"products:C=C"}},"smirks.unmapped_reactant_deleted":{"value":"deleted","observed":{"drop_unmapped_O":"products:CC","drop_unmapped_O_X":"products:CC","drop_unmapped_N":"products:CCC"}},"smirks.unwritten_charge":{"value":"inherited","observed":{"N_keep_on_ammonium":"products:C[NH3+]"}},"smirks.valence_invalid_raw":{"value":"kept_raw","observed":{"ether_trap":"products:C=OC"}},"syntax.aliphatic_any_A":{"value":"supported","observed":{"aliphatic_any_A":"match:1"}},"syntax.aliphatic_hetero_neighbors_Z":{"value":"supported","observed":{"aliphatic_hetero_neighbors_Z":"match:1"}},"syntax.aromatic_selenium":{"value":"supported","observed":{"aromatic_selenium":"match:1"}},"syntax.cdk_hash_X":{"value":"rejected","observed":{"cdk_hash_X":"error"}},"syntax.charge_plusplus":{"value":"charge2","observed":{"pp_on_n2plus":"match:1","pp_on_n1plus":"match:0"}},"syntax.component_grouping":{"value":"rejected","observed":{"separate_groups_same_component":"error","same_group_two_components":"error"}},"syntax.dative_bond":{"value":"supported","observed":{"dative_parse":"ok"}},"syntax.dot_disconnected":{"value":"supported","observed":{"dot_on_methanol":"match:1"}},"syntax.hetero_neighbors_z":{"value":"supported","observed":{"hetero_neighbors_z":"match:1"}},"syntax.hybridization":{"value":"zero_to_five","observed":{"hyb_digit0":"ok","hyb_digit7":"error","hyb_sp3_ethane":"match:2","hyb_bare_ethyne":"error"}},"syntax.insaturation_i":{"value":"rejected","observed":{"i1_ethene":"error"}},"syntax.periodic_group_G":{"value":"rejected","observed":{"periodic_group_G":"error"}},"syntax.range_counts":{"value":"supported","observed":{"range_counts":"match:3"}},"syntax.ring_size_k":{"value":"supported","observed":{"ring_size_k":"match:6"}},"syntax.unclosed_ring":{"value":"rejected","observed":{"unclosed":"error"}}}}],"severity":{"match.bond_stereo":{"branch_direction_inverted":"bug"},"match.nested_recursive":{"always_true":"bug"},"match.or_with_any_atom":{"drops_any":"bug"},"match.substituted_aromatic_perception":{"error":"bug"},"match.unspecified_isotope":{"isotope_ignored":"bug"},"products.grouped_product_component":{"ignored_split":"bug"},"products.new_double_bond_h":{"h_kept_overvalent":"bug","dummies":"bug"},"smirks.add_atom_with_explicit_h":{"empty":"bug","h_not_adjusted":"bug","untyped":"bug"},"smirks.add_unmapped_atom":{"untyped":"bug","h_kept_overvalent":"bug"},"smirks.aromatic_output_form":{"dearomatized":"bug"},"smirks.aromatic_product":{"dearomatized":"bug","kekule_h_kept":"bug"},"smirks.bond_order_decrease_retyping":{"dummies":"bug"},"smirks.charge_hcount":{"untyped":"bug"},"smirks.charge_plus2_hcount":{"untyped":"bug"},"smirks.colon_product_bond":{"no_change":"bug"},"smirks.delete_mapped_by_omission":{"deleted_no_refill":"bug"},"smirks.edits_with_explicit_h":{"empty":"bug","h_not_adjusted":"bug","untyped":"bug","h_kept_overvalent":"bug"},"smirks.element_change":{"corrupt":"bug","ignored":"bug"},"smirks.explicit_h_apply":{"edits_empty":"bug","h_kept":"bug","untyped":"bug"},"smirks.h_atom_in_template":{"explicit_only_no_refill":"bug"},"smirks.hcount_query_explicit_h":{"empty":"bug"},"smirks.mapped_aromatic_nh":{"h_lost_when_mapped":"bug","dearomatized":"bug"},"smirks.multi_site_application":{"flattened_h_kept":"bug"},"smirks.nested_recursive":{"always_true":"bug"},"smirks.neutralize_written_charge":{"untyped":"bug","neutralized_h_kept":"bug"},"smirks.new_bond_query_order":{"bond_dropped":"bug"},"smirks.product_h_atom_added":{"h_dropped":"bug","untyped":"bug"},"smirks.product_h_pin":{"rejected_empty":"bug","ignored":"bug"},"smirks.product_plusplus":{"untyped":"bug"},"smirks.sanitize_policy":{"untyped":"bug","h_kept_overvalent":"bug"},"smirks.star_on_explicit_h":{"explicit_edits_empty":"bug","h_atoms_no_refill":"bug","untyped":"bug"},"smirks.star_retype":{"corrupt":"bug"},"smirks.stereo_carried":{"flipped_by_neighbor_order":"bug","dropped":"bug"},"smirks.undefined_order_both_sides":{"noop_applied":"bug"},"smirks.unmapped_reactant_deleted":{"deleted_h_orphaned":"bug","labels_h_orphaned":"bug"},"smirks.valence_invalid_raw":{"untyped":"bug","h_kept_overvalent":"bug"},"syntax.hybridization":{"cdk_one_based_untyped":"bug"},"match.ring_count_basis":{"sssr":"bug"}},"consensus":{"match.aromatic_valence":"kekule_total","match.aromaticity_exocyclic_carbonyl":"daylight_like","match.atom_chirality":null,"match.bond_stereo":"ignored","match.compound_bond_kekule":"aromatic_aware","match.count_semantics":"unique_atom_sets","match.degree_with_explicit_h":"counts_h_atoms","match.directional_bond":"single_or_aromatic","match.double_bond_vs_aromatic":"excludes_aromatic","match.h_atom_query":"explicit_only","match.h_count_with_explicit_h":"counts_h_atoms","match.implicit_h_lowercase_h":null,"match.nested_recursive":"evaluated","match.proton":null,"match.ring_size_semantics":"smallest_ring","match.single_bond_vs_aromatic":"excludes_aromatic","match.substituted_aromatic_perception":"ok","match.unspecified_isotope":"natural_is_unspecified","products.byproduct_filter":"kept","products.fragment_objects":"per_template_component","products.spectator_components":"dropped","products.validity_filter":"kept","smirks.aromatic_output_form":"aromatic","smirks.bond_order_decrease_retyping":"retyped","smirks.charge_hcount":null,"smirks.charge_plus2_hcount":"valence_reduced","smirks.delete_mapped_by_omission":null,"smirks.disconnect":"split","smirks.element_change":"rejected","smirks.equivalent_h_mappings":"per_h_atom","smirks.fragmented_reactant":"rejected","smirks.h_atom_in_template":null,"smirks.hcount_query_explicit_h":"preserved","smirks.identity_labels":"organic","smirks.mapped_aromatic_nh":null,"smirks.new_bond_query_order":"rejected","smirks.outcome_multiplicity":null,"smirks.product_h_atom_added":null,"smirks.product_only_map":"rejected","smirks.product_plusplus":"same_as_plus2","smirks.reactant_aromaticity":"not_perceived","smirks.reactant_query_syntax":"full_smarts","smirks.recursive_in_reactant":"supported","smirks.sanitizer":"native","smirks.site_choice_order_dependence":null,"smirks.star_on_explicit_h":null,"smirks.star_retype":null,"smirks.undefined_product_bond":"rejected","smirks.unmapped_reactant_deleted":"deleted","smirks.unwritten_charge":"inherited","syntax.aliphatic_any_A":"supported","syntax.aliphatic_hetero_neighbors_Z":"rejected","syntax.aromatic_selenium":"supported","syntax.cdk_hash_X":"rejected","syntax.charge_plusplus":"charge2","syntax.component_grouping":"rejected","syntax.dative_bond":"rejected","syntax.dot_disconnected":"supported","syntax.hetero_neighbors_z":"rejected","syntax.insaturation_i":"rejected","syntax.periodic_group_G":"rejected","syntax.range_counts":null,"syntax.ring_size_k":null,"syntax.unclosed_ring":"rejected","products.grouped_product_component":null,"smirks.aromatic_product":"aromatic_preserved","smirks.colon_product_bond":"labels","smirks.multi_site_application":"per_site","smirks.product_h_pin":null,"smirks.stereo_carried":null,"match.or_with_any_atom":"correct","products.new_double_bond_h":"h_adjusted","smirks.add_unmapped_atom":"added","smirks.nested_recursive":"rejected","smirks.neutralize_written_charge":"neutralized","smirks.sanitize_policy":null,"smirks.undefined_order_both_sides":"rejected","smirks.valence_invalid_raw":null,"syntax.hybridization":null,"smirks.add_atom_with_explicit_h":null,"match.ring_count_basis":"symmetric","smirks.edits_with_explicit_h":"h_aware","smirks.explicit_h_apply":"h_aware"}}