{
  "checked_on": "2026-10-18",
  "chematic": "1.1.7",
  "rdkit": "2026.9.1",
  "runtime": {
    "python": "3.13.6",
    "system": "Darwin",
    "machine": "arm64"
  },
  "sulfur_roundtrips": [
    {
      "input": "C[S@](=O)c1ccccc1",
      "file": "sulfur-01.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "[S@](=O)(c1ccccc1)C",
      "rdkit_identity": "C[S@](=O)c1ccccc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)c1ccccc1",
      "file": "sulfur-02.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "[S@@](=O)(c1ccccc1)C",
      "rdkit_identity": "C[S@@](=O)c1ccccc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])c1ccccc1",
      "file": "sulfur-03.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "c1ccc(cc1)[S@@+]([O-])C",
      "rdkit_identity": "C[S@+]([O-])c1ccccc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])c1ccccc1",
      "file": "sulfur-04.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "c1ccc(cc1)[S@+]([O-])C",
      "rdkit_identity": "C[S@@+]([O-])c1ccccc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)CC",
      "file": "sulfur-05.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "C[S@@](CC)=O",
      "rdkit_identity": "CC[S@](C)=O",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)CC",
      "file": "sulfur-06.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "C[S@](CC)=O",
      "rdkit_identity": "CC[S@@](C)=O",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)N",
      "file": "sulfur-07.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "[S@@](N)(=O)C",
      "rdkit_identity": "C[S@@](N)=O",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)N",
      "file": "sulfur-08.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "[S@](N)(=O)C",
      "rdkit_identity": "C[S@](N)=O",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)Cl",
      "file": "sulfur-09.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "[S@@](=O)(C)Cl",
      "rdkit_identity": "C[S@](=O)Cl",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)Cl",
      "file": "sulfur-10.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "[S@](=O)(C)Cl",
      "rdkit_identity": "C[S@@](=O)Cl",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])CC",
      "file": "sulfur-11.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "C[S@+]([O-])CC",
      "rdkit_identity": "CC[S@+](C)[O-]",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])CC",
      "file": "sulfur-12.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "C[S@@+]([O-])CC",
      "rdkit_identity": "CC[S@@+](C)[O-]",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])N",
      "file": "sulfur-13.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "[S@+](N)(C)[O-]",
      "rdkit_identity": "C[S@@+](N)[O-]",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])N",
      "file": "sulfur-14.mol",
      "before_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 1,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "[S@@+](N)(C)[O-]",
      "rdkit_identity": "C[S@+](N)[O-]",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "Cc1ccc([S@](=O)Cl)cc1",
      "file": "sulfur-15.mol",
      "before_cip": [
        {
          "atom_idx": 5,
          "descriptor": "R"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 5,
          "descriptor": "R"
        }
      ],
      "restored_smiles": "Cc1ccc(cc1)[S@](=O)Cl",
      "rdkit_identity": "Cc1ccc([S@](=O)Cl)cc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "Cc1ccc([S@@](=O)Cl)cc1",
      "file": "sulfur-16.mol",
      "before_cip": [
        {
          "atom_idx": 5,
          "descriptor": "S"
        }
      ],
      "after_cip": [
        {
          "atom_idx": 5,
          "descriptor": "S"
        }
      ],
      "restored_smiles": "Cc1ccc(cc1)[S@@](=O)Cl",
      "rdkit_identity": "Cc1ccc([S@@](=O)Cl)cc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    }
  ],
  "unmarked_3d_reads": [
    {
      "id": "coupled-ring-v2000",
      "file": "fixtures/coupled-ring-v2000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/chematic-unmarked-3d-coupled-ring-v2000.mol",
      "expected_smiles": "C=CCOc1ccc(/C=C(\\C)C(=O)N[C@@H]2[C@H](O)CCC[C@@H]2O)cc1O",
      "format": "v2000",
      "observed_smiles": "C=CCOC=1C(O)=CC(/C=C(/C(=O)N[C@@H]2[C@@H](CCC[C@@H]2O)O)C)=CC=1",
      "rdkit_normalized_identity": "C=CCOc1ccc(/C=C(\\C)C(=O)N[C@@H]2[C@H](O)CCC[C@@H]2O)cc1O",
      "identity_matches": true
    },
    {
      "id": "coupled-ring-v3000",
      "file": "fixtures/coupled-ring-v3000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/chematic-unmarked-3d-coupled-ring-v3000.mol",
      "expected_smiles": "C=CCOc1ccc(/C=C(\\C)C(=O)N[C@@H]2[C@H](O)CCC[C@@H]2O)cc1O",
      "format": "v3000",
      "observed_smiles": "C=CCOC=1C(O)=CC(/C=C(/C(=O)N[C@@H]2[C@@H](CCC[C@@H]2O)O)C)=CC=1",
      "rdkit_normalized_identity": "C=CCOc1ccc(/C=C(\\C)C(=O)N[C@@H]2[C@H](O)CCC[C@@H]2O)cc1O",
      "identity_matches": true
    },
    {
      "id": "exocyclic-alkene-v2000",
      "file": "fixtures/exocyclic-alkene-v2000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/openbabel-3d-exocyclic-3174-v2000.mol",
      "expected_smiles": "Cc1cccc(C)c1NC(=O)/C=C1/SCC(=O)N1C",
      "format": "v2000",
      "observed_smiles": "C2=CC=C(C)C(=C2C)NC(/C=C/1N(C(=O)CS1)C)=O",
      "rdkit_normalized_identity": "Cc1cccc(C)c1NC(=O)/C=C1/SCC(=O)N1C",
      "identity_matches": true
    },
    {
      "id": "exocyclic-alkene-v3000",
      "file": "fixtures/exocyclic-alkene-v3000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/openbabel-3d-exocyclic-3174-v3000.mol",
      "expected_smiles": "Cc1cccc(C)c1NC(=O)/C=C1/SCC(=O)N1C",
      "format": "v3000",
      "observed_smiles": "C2=CC=C(C)C(=C2C)NC(/C=C/1N(C(=O)CS1)C)=O",
      "rdkit_normalized_identity": "Cc1cccc(C)c1NC(=O)/C=C1/SCC(=O)N1C",
      "identity_matches": true
    },
    {
      "id": "adamantane-v2000",
      "file": "fixtures/adamantane-v2000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/openbabel-3d-adamantane-591-v2000.mol",
      "expected_smiles": "O=c1cc(COC2CCOCC2)occ1OC(=O)[C@]12C[C@H]3C[C@H](C[C@H](C3)C1)C2",
      "format": "v2000",
      "observed_smiles": "C1C(OCC5=CC(=O)C(=CO5)OC([C@@]34C[C@@H]2C[C@H](C4)C[C@H](C3)C2)=O)CCOC1",
      "rdkit_normalized_identity": "O=c1cc(COC2CCOCC2)occ1OC(=O)[C@]12C[C@H]3C[C@H](C[C@H](C3)C1)C2",
      "identity_matches": true
    },
    {
      "id": "adamantane-v3000",
      "file": "fixtures/adamantane-v3000.mol",
      "source_path": "crates/chematic-mol/tests/fixtures/openbabel-3d-adamantane-591-v3000.mol",
      "expected_smiles": "O=c1cc(COC2CCOCC2)occ1OC(=O)[C@]12C[C@H]3C[C@H](C[C@H](C3)C1)C2",
      "format": "v3000",
      "observed_smiles": "C1C(OCC5=CC(=O)C(=CO5)OC([C@@]34C[C@@H]2C[C@H](C4)C[C@H](C3)C2)=O)CCOC1",
      "rdkit_normalized_identity": "O=c1cc(COC2CCOCC2)occ1OC(=O)[C@]12C[C@H]3C[C@H](C[C@H](C3)C1)C2",
      "identity_matches": true
    }
  ],
  "wasm_independent_reads": [
    {
      "input": "C[S@](=O)c1ccccc1",
      "file": "wasm-sulfur-01.mol",
      "rdkit_identity": "C[S@](=O)c1ccccc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)c1ccccc1",
      "file": "wasm-sulfur-02.mol",
      "rdkit_identity": "C[S@@](=O)c1ccccc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])c1ccccc1",
      "file": "wasm-sulfur-03.mol",
      "rdkit_identity": "C[S@+]([O-])c1ccccc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])c1ccccc1",
      "file": "wasm-sulfur-04.mol",
      "rdkit_identity": "C[S@@+]([O-])c1ccccc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)CC",
      "file": "wasm-sulfur-05.mol",
      "rdkit_identity": "CC[S@](C)=O",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)CC",
      "file": "wasm-sulfur-06.mol",
      "rdkit_identity": "CC[S@@](C)=O",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)N",
      "file": "wasm-sulfur-07.mol",
      "rdkit_identity": "C[S@@](N)=O",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)N",
      "file": "wasm-sulfur-08.mol",
      "rdkit_identity": "C[S@](N)=O",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@](=O)Cl",
      "file": "wasm-sulfur-09.mol",
      "rdkit_identity": "C[S@](=O)Cl",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@](=O)Cl",
      "file": "wasm-sulfur-10.mol",
      "rdkit_identity": "C[S@@](=O)Cl",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])CC",
      "file": "wasm-sulfur-11.mol",
      "rdkit_identity": "CC[S@+](C)[O-]",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])CC",
      "file": "wasm-sulfur-12.mol",
      "rdkit_identity": "CC[S@@+](C)[O-]",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@+]([O-])N",
      "file": "wasm-sulfur-13.mol",
      "rdkit_identity": "C[S@@+](N)[O-]",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    },
    {
      "input": "C[S@@+]([O-])N",
      "file": "wasm-sulfur-14.mol",
      "rdkit_identity": "C[S@+](N)[O-]",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "Cc1ccc([S@](=O)Cl)cc1",
      "file": "wasm-sulfur-15.mol",
      "rdkit_identity": "Cc1ccc([S@](=O)Cl)cc1",
      "rdkit_cip": [
        "R"
      ],
      "identity_matches": true
    },
    {
      "input": "Cc1ccc([S@@](=O)Cl)cc1",
      "file": "wasm-sulfur-16.mol",
      "rdkit_identity": "Cc1ccc([S@@](=O)Cl)cc1",
      "rdkit_cip": [
        "S"
      ],
      "identity_matches": true
    }
  ],
  "scope": "16 selected sulfur inputs: CIP labels and RDKit canonical isomeric identity checked after V3000 output. Six selected unmarked 3D regression fixtures: RDKit-normalized output identity compared to the fixture's expected source SMILES. No general stereochemistry accuracy or speed estimate.",
  "fixtures_source_commit": "9860b57b33456d2043f8a84847e3974b142200da"
}
