{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/benchling/main/json-schema/benchling-monomer-schema.json",
  "title": "Monomer",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/benchling-monomers-api-openapi.yml#/components/schemas/Monomer",
  "properties": {
    "archiveRecord": {
      "allOf": [
        {
          "$ref": "#/$defs/ArchiveRecord"
        }
      ]
    },
    "attachmentPoints": {
      "description": "A list of the capping group present at each location where the monomer can form a bond with other monomers",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "calculatedMolecularWeight": {
      "description": "The molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure",
      "type": "number"
    },
    "canonicalSmiles": {
      "description": "The canonicalized chemical structure in SMILES format.",
      "type": "string"
    },
    "createdAt": {
      "description": "DateTime the monomer was created.",
      "format": "date-time",
      "readOnly": true,
      "type": "string"
    },
    "customMolecularWeight": {
      "description": "Optional molecular weight value that the user can provide to override the calculated molecular weight",
      "type": [
        "number",
        "null"
      ]
    },
    "exactMolecularWeight": {
      "description": "The exact molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure",
      "type": "number"
    },
    "id": {
      "description": "ID of the monomer",
      "type": "string"
    },
    "modifiedAt": {
      "description": "DateTime the monomer was last modified.",
      "format": "date-time",
      "readOnly": true,
      "type": "string"
    },
    "monomerType": {
      "allOf": [
        {
          "$ref": "#/$defs/MonomerType"
        }
      ]
    },
    "name": {
      "description": "Name of the monomer",
      "type": "string"
    },
    "naturalAnalog": {
      "description": "Symbol for the natural equivalent of the monomer. Acceptable natural analog values include IUPAC bases, r, and p.",
      "type": "string"
    },
    "originalSmiles": {
      "description": "The original chemical structure supplied by the user in SMILES format. Null if the user did not originally supply SMILES.",
      "type": [
        "string",
        "null"
      ]
    },
    "polymerType": {
      "allOf": [
        {
          "$ref": "#/$defs/MonomerPolymerType"
        }
      ]
    },
    "symbol": {
      "description": "User-defined identifier of the monomer, unique on the monomer type.",
      "type": "string"
    },
    "visualColor": {
      "description": "The hex color code of the monomer visual symbol",
      "type": [
        "string",
        "null"
      ]
    },
    "visualSymbol": {
      "allOf": [
        {
          "$ref": "#/$defs/MonomerVisualSymbol"
        }
      ]
    }
  },
  "type": "object",
  "$defs": {
    "ArchiveRecord": {
      "properties": {
        "reason": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "MonomerPolymerType": {
      "description": "The polymer type of the monomer. Currently only RNA monomers are supported.",
      "enum": [
        "RNA"
      ],
      "type": "string"
    },
    "MonomerType": {
      "description": "The part of the nucleotide structure that the monomer fits into, i.e. backbone or branch",
      "enum": [
        "BACKBONE",
        "BRANCH"
      ],
      "type": "string"
    },
    "MonomerVisualSymbol": {
      "description": "The shape of the monomer visual symbol.",
      "enum": [
        "DIAMOND_FILLED",
        "DIAMOND_HOLLOW",
        "DIAMOND_DASHED",
        "STAR_FILLED",
        "STAR_HOLLOW",
        "TRIANGLE_FILLED",
        "TRIANGLE_HOLLOW",
        "DYAD_FILLED",
        "DYAD_HOLLOW",
        "CLOVER_FILLED",
        "CLOVER_HOLLOW",
        "TRIAD_FILLED",
        "TRIAD_HOLLOW",
        "RECTANGLE_FILLED",
        "RECTANGLE_HOLLOW",
        "LETTERS_P",
        "LETTERS_PS"
      ],
      "type": "string"
    }
  }
}