{
  "$defs": {
    "FactorNode": {
      "pattern": "^[a-z][a-z0-9_]{0,62}$",
      "type": "string"
    },
    "FactorValue": {
      "pattern": "^[a-z][a-z0-9_]{0,62}$",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "description": "One variant of the subject: the value of the experiment factor on some of its nodes.\n\n``nodes`` maps a node of ``varies.nodes`` to its value, whose kind ``varies.what`` sets: an agent id\n(``agent``), a prompt name from the experiment ``prompts/`` folder (``prompt``), an alternative id from its\n``nodes/`` folder (``use``) or a flow id, local to the experiment first, then of the project (``flow``). A\nfactor node the variant leaves out runs as written; a variant without ``nodes`` is the subject as written.",
  "properties": {
    "id": {
      "pattern": "^[a-z][a-z0-9_]{0,62}$",
      "title": "Id",
      "type": "string"
    },
    "nodes": {
      "anyOf": [
        {
          "additionalProperties": {
            "$ref": "#/$defs/FactorValue"
          },
          "propertyNames": {
            "$ref": "#/$defs/FactorNode"
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Nodes"
    }
  },
  "required": [
    "id"
  ],
  "title": "VariantSpec",
  "type": "object"
}
