{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/ryl.json",
  "definitions": {
    "AllRulesSelector": {
      "description": "The `ALL` keyword accepted in a `per-line-ignores` `rules` list.",
      "enum": ["ALL"],
      "type": "string"
    },
    "FilesTable": {
      "additionalProperties": false,
      "description": "File-to-source-kind glob mapping (ryl-only; TOML). Each kind selects which\nfiles are linted as that kind. A file matching more than one kind is an error.",
      "properties": {
        "markdown": {
          "description": "Glob patterns for markdown files whose embedded YAML is linted.",
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        },
        "yaml": {
          "description": "Glob patterns for files linted directly as YAML.",
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        }
      },
      "type": "object"
    },
    "FixRuleName": {
      "description": "A fixable rule name accepted by `fix.unfixable`.",
      "enum": [
        "braces",
        "brackets",
        "commas",
        "comments",
        "comments-indentation",
        "document-end",
        "document-start",
        "empty-lines",
        "new-line-at-end-of-file",
        "new-lines",
        "quoted-strings",
        "trailing-spaces"
      ],
      "type": "string"
    },
    "FixTable": {
      "additionalProperties": false,
      "description": "TOML `[fix]` table.",
      "properties": {
        "fixable": {
          "items": {
            "$ref": "#/definitions/FixableRuleSelector"
          },
          "type": ["array", "null"]
        },
        "unfixable": {
          "items": {
            "$ref": "#/definitions/FixRuleName"
          },
          "type": ["array", "null"]
        }
      },
      "type": "object"
    },
    "FixableRuleSelector": {
      "description": "A rule selector accepted by `fix.fixable`.",
      "enum": [
        "ALL",
        "braces",
        "brackets",
        "commas",
        "comments",
        "comments-indentation",
        "document-end",
        "document-start",
        "empty-lines",
        "new-line-at-end-of-file",
        "new-lines",
        "quoted-strings",
        "trailing-spaces"
      ],
      "type": "string"
    },
    "ForbidMode": {
      "enum": ["non-empty"],
      "type": "string"
    },
    "ForbidSetting": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/ForbidMode"
        }
      ]
    },
    "IndentSequencesMode": {
      "enum": ["whatever", "consistent"],
      "type": "string"
    },
    "IndentSequencesSetting": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/IndentSequencesMode"
        }
      ]
    },
    "MarkdownTable": {
      "additionalProperties": false,
      "description": "Markdown embedding behaviour. ryl-only (TOML); yamllint has no equivalent.",
      "properties": {
        "fenced-blocks": {
          "description": "Lint fenced `yaml`/`yml` code blocks. Defaults to `true`.",
          "type": ["boolean", "null"]
        },
        "front-matter": {
          "description": "Lint the leading YAML front matter block. Defaults to `true`.",
          "type": ["boolean", "null"]
        }
      },
      "type": "object"
    },
    "NewLinesType": {
      "enum": ["unix", "dos", "platform"],
      "type": "string"
    },
    "OutputDestination": {
      "additionalProperties": false,
      "description": "Where one format's output goes. An absent `path` means the format's default stream\n(stderr for the console formats, stdout for `junit`/`gitlab`); `\"-\"` means stdout; any\nother value is a file path.",
      "properties": {
        "path": {
          "type": ["string", "null"]
        }
      },
      "type": "object"
    },
    "OutputTable": {
      "additionalProperties": false,
      "description": "Output targets (ryl-only; TOML). Each format present is rendered to its destination,\nso several formats produce several outputs in one run (e.g. console plus a report\nfile). A CLI `--format` overrides this table wholesale. yamllint has no equivalent;\nsee `docs/output-formats.md`.",
      "properties": {
        "auto": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "Auto-detected console format (GitHub annotations in CI, otherwise colored/plain)."
        },
        "colored": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "Plain text with ANSI colors."
        },
        "github": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "GitHub Actions workflow commands."
        },
        "gitlab": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "`GitLab` Code Quality JSON report."
        },
        "junit": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "`JUnit` XML test report."
        },
        "parsable": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "One `path:line:col: [level] message (rule)` line per diagnostic."
        },
        "standard": {
          "anyOf": [
            {
              "$ref": "#/definitions/OutputDestination"
            },
            {
              "type": "null"
            }
          ],
          "description": "Plain text grouped per file."
        }
      },
      "type": "object"
    },
    "PerLineIgnore": {
      "additionalProperties": false,
      "description": "A single `per-line-ignores` entry. Suppresses `rules` on source lines matching\n`regex` (the whole physical line, unanchored) within files matching `path` (a\nglob). All present fields must match (logical AND); at least one of `regex`/`path`\nis required (validated in `validate_toml_config`), so an entry can't disable a rule\nglobally.",
      "properties": {
        "path": {
          "type": ["string", "null"]
        },
        "regex": {
          "type": ["string", "null"]
        },
        "rules": {
          "items": {
            "$ref": "#/definitions/PerLineRule"
          },
          "type": "array"
        }
      },
      "required": ["rules"],
      "type": "object"
    },
    "PerLineRule": {
      "anyOf": [
        {
          "$ref": "#/definitions/AllRulesSelector"
        },
        {
          "$ref": "#/definitions/RuleName"
        }
      ],
      "description": "A `per-line-ignores` rule selector: a built-in rule name, or `ALL` to suppress\nevery rule on a matching line. Untagged so `\"ALL\"` and rule names share one list."
    },
    "QuoteType": {
      "enum": ["any", "single", "double", "consistent"],
      "type": "string"
    },
    "QuotedStringsRequired": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/QuotedStringsRequiredMode"
        }
      ]
    },
    "QuotedStringsRequiredMode": {
      "enum": ["only-when-needed"],
      "type": "string"
    },
    "RuleEntryForBraceLikeOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForBraceLikeOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForColonsOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForColonsOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForCommasOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForCommasOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForCommentsIndentationOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForCommentsIndentationOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForCommentsOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForCommentsOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForDocumentPresenceOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForDocumentPresenceOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForEmptyLinesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForEmptyLinesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForEmptyValuesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForEmptyValuesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForFloatValuesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForFloatValuesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForIndentationOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForIndentationOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForKeyOrderingOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForKeyOrderingOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForLineLengthOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForLineLengthOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForNewLinesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForNewLinesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForNoOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForNoOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForOctalValuesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForOctalValuesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTagsOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTagsOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTomlAnchorsOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTomlAnchorsOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTomlHyphensOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTomlHyphensOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTomlKeyDuplicatesOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTomlKeyDuplicatesOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTomlQuotedStringsOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTomlQuotedStringsOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleEntryForTruthyOptions": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/definitions/RuleSwitch"
        },
        {
          "$ref": "#/definitions/RuleOptionsForTruthyOptions"
        }
      ],
      "description": "Common rule entry shape used by TOML config."
    },
    "RuleLevel": {
      "description": "Rule severity override.",
      "enum": ["error", "warning"],
      "type": "string"
    },
    "RuleName": {
      "description": "A built-in lint rule name.",
      "enum": [
        "anchors",
        "block-scalar-chomping",
        "braces",
        "brackets",
        "colons",
        "commas",
        "comments",
        "comments-indentation",
        "document-end",
        "document-start",
        "empty-lines",
        "empty-values",
        "float-values",
        "hyphens",
        "indentation",
        "key-duplicates",
        "key-ordering",
        "line-length",
        "merge-keys",
        "new-line-at-end-of-file",
        "new-lines",
        "octal-values",
        "quoted-strings",
        "tags",
        "trailing-spaces",
        "truthy",
        "unicode-line-breaks"
      ],
      "type": "string"
    },
    "RuleOptionsForBraceLikeOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "forbid": {
          "anyOf": [
            {
              "$ref": "#/definitions/ForbidSetting"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max-spaces-inside": {
          "type": ["integer", "null"]
        },
        "max-spaces-inside-empty": {
          "type": ["integer", "null"]
        },
        "min-spaces-inside": {
          "type": ["integer", "null"]
        },
        "min-spaces-inside-empty": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForColonsOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max-spaces-after": {
          "type": ["integer", "null"]
        },
        "max-spaces-before": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForCommasOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max-spaces-after": {
          "type": ["integer", "null"]
        },
        "max-spaces-before": {
          "type": ["integer", "null"]
        },
        "min-spaces-after": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForCommentsIndentationOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "allow-any-open-indent": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForCommentsOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-shebangs": {
          "type": ["boolean", "null"]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "min-spaces-from-content": {
          "type": ["integer", "null"]
        },
        "require-starting-space": {
          "type": ["boolean", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForDocumentPresenceOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "present": {
          "type": ["boolean", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForEmptyLinesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max": {
          "type": ["integer", "null"]
        },
        "max-end": {
          "type": ["integer", "null"]
        },
        "max-start": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForEmptyValuesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "forbid-in-block-mappings": {
          "type": ["boolean", "null"]
        },
        "forbid-in-block-sequences": {
          "type": ["boolean", "null"]
        },
        "forbid-in-flow-mappings": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForFloatValuesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "forbid-inf": {
          "type": ["boolean", "null"]
        },
        "forbid-nan": {
          "type": ["boolean", "null"]
        },
        "forbid-scientific-notation": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "require-numeral-before-decimal": {
          "type": ["boolean", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForIndentationOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "check-multi-line-strings": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "indent-sequences": {
          "anyOf": [
            {
              "$ref": "#/definitions/IndentSequencesSetting"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "spaces": {
          "anyOf": [
            {
              "$ref": "#/definitions/SpacesSetting"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForKeyOrderingOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignored-keys": {
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForLineLengthOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "allow-non-breakable-inline-mappings": {
          "type": ["boolean", "null"]
        },
        "allow-non-breakable-words": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForNewLinesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": {
          "anyOf": [
            {
              "$ref": "#/definitions/NewLinesType"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForNoOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForOctalValuesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "forbid-explicit-octal": {
          "type": ["boolean", "null"]
        },
        "forbid-implicit-octal": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTagsOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "allowed-tags": {
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        },
        "forbid-removed-types": {
          "type": ["boolean", "null"]
        },
        "forbid-unsafe-tags": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTomlAnchorsOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "forbid-ambiguous-anchor-alias-names": {
          "type": ["boolean", "null"]
        },
        "forbid-duplicated-anchors": {
          "type": ["boolean", "null"]
        },
        "forbid-undeclared-aliases": {
          "type": ["boolean", "null"]
        },
        "forbid-unused-anchors": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTomlHyphensOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "dash-on-own-line": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "max-spaces-after": {
          "type": ["integer", "null"]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTomlKeyDuplicatesOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "check-canonical": {
          "type": ["boolean", "null"]
        },
        "forbid-duplicated-merge-keys": {
          "type": ["boolean", "null"]
        },
        "forbid-merge-key-shadowing": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTomlQuotedStringsOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "allow-double-quotes-for-escaping": {
          "type": ["boolean", "null"]
        },
        "allow-quoted-quotes": {
          "type": ["boolean", "null"]
        },
        "check-keys": {
          "type": ["boolean", "null"]
        },
        "extra-allowed": {
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        },
        "extra-required": {
          "items": {
            "type": "string"
          },
          "type": ["array", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        },
        "quote-type": {
          "anyOf": [
            {
              "$ref": "#/definitions/QuoteType"
            },
            {
              "type": "null"
            }
          ]
        },
        "required": {
          "anyOf": [
            {
              "$ref": "#/definitions/QuotedStringsRequired"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleOptionsForTruthyOptions": {
      "additionalProperties": false,
      "description": "Common rule fields plus rule-specific options.",
      "properties": {
        "allowed-values": {
          "items": {
            "$ref": "#/definitions/TruthyAllowedValue"
          },
          "type": ["array", "null"]
        },
        "check-keys": {
          "type": ["boolean", "null"]
        },
        "ignore": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "ignore-from-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrVec"
            },
            {
              "type": "null"
            }
          ]
        },
        "level": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleLevel"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "RuleSwitch": {
      "description": "Shorthand rule enable/disable syntax.",
      "enum": ["enable", "disable"],
      "type": "string"
    },
    "RulesTable": {
      "description": "Built-in rule table for TOML config.",
      "properties": {
        "anchors": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTomlAnchorsOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "block-scalar-chomping": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNoOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "braces": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForBraceLikeOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "brackets": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForBraceLikeOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "colons": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForColonsOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "commas": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForCommasOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "comments": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForCommentsOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "comments-indentation": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForCommentsIndentationOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "document-end": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForDocumentPresenceOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "document-start": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForDocumentPresenceOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "empty-lines": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForEmptyLinesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "empty-values": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForEmptyValuesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "float-values": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForFloatValuesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "hyphens": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTomlHyphensOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "indentation": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForIndentationOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "key-duplicates": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTomlKeyDuplicatesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "key-ordering": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForKeyOrderingOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "line-length": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForLineLengthOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "merge-keys": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNoOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "new-line-at-end-of-file": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNoOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "new-lines": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNewLinesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "octal-values": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForOctalValuesOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "quoted-strings": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTomlQuotedStringsOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTagsOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "trailing-spaces": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNoOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "truthy": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForTruthyOptions"
            },
            {
              "type": "null"
            }
          ]
        },
        "unicode-line-breaks": {
          "anyOf": [
            {
              "$ref": "#/definitions/RuleEntryForNoOptions"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "SpacesMode": {
      "enum": ["consistent"],
      "type": "string"
    },
    "SpacesSetting": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "$ref": "#/definitions/SpacesMode"
        }
      ]
    },
    "StringOrVec": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      ],
      "description": "A TOML field that accepts either one string or a list of strings."
    },
    "TruthyAllowedValue": {
      "enum": [
        "YES",
        "Yes",
        "yes",
        "NO",
        "No",
        "no",
        "TRUE",
        "True",
        "true",
        "FALSE",
        "False",
        "false",
        "ON",
        "On",
        "on",
        "OFF",
        "Off",
        "off"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false,
  "description": "JSON Schema root for `ryl` TOML configuration.",
  "properties": {
    "files": {
      "anyOf": [
        {
          "$ref": "#/definitions/FilesTable"
        },
        {
          "type": "null"
        }
      ],
      "description": "Glob patterns assigning files to source kinds (`yaml`, `markdown`)."
    },
    "fix": {
      "anyOf": [
        {
          "$ref": "#/definitions/FixTable"
        },
        {
          "type": "null"
        }
      ],
      "description": "Native fix policy."
    },
    "ignore": {
      "anyOf": [
        {
          "$ref": "#/definitions/StringOrVec"
        },
        {
          "type": "null"
        }
      ],
      "description": "Ignore patterns, either as one multi-line string or a list of patterns."
    },
    "ignore-from-file": {
      "anyOf": [
        {
          "$ref": "#/definitions/StringOrVec"
        },
        {
          "type": "null"
        }
      ],
      "description": "Paths to files that contain ignore patterns."
    },
    "locale": {
      "description": "Locale identifier used by diagnostics.",
      "type": ["string", "null"]
    },
    "markdown": {
      "anyOf": [
        {
          "$ref": "#/definitions/MarkdownTable"
        },
        {
          "type": "null"
        }
      ],
      "description": "Behaviour for YAML embedded in markdown (front matter and fenced blocks)."
    },
    "output": {
      "anyOf": [
        {
          "$ref": "#/definitions/OutputTable"
        },
        {
          "type": "null"
        }
      ],
      "description": "Output targets: which format goes to which destination (file/stdout/stderr)."
    },
    "per-file-ignores": {
      "additionalProperties": {
        "items": {
          "$ref": "#/definitions/RuleName"
        },
        "type": "array"
      },
      "description": "Per-file rule ignores.",
      "type": ["object", "null"]
    },
    "per-line-ignores": {
      "description": "Per-line rule ignores: suppress rules on lines/files matching a pattern.",
      "items": {
        "$ref": "#/definitions/PerLineIgnore"
      },
      "type": ["array", "null"]
    },
    "rules": {
      "anyOf": [
        {
          "$ref": "#/definitions/RulesTable"
        },
        {
          "type": "null"
        }
      ],
      "description": "Rule configuration table."
    }
  },
  "title": "ryl TOML config",
  "type": "object"
}
