Repository: biomejs/biome (language: rust)

Issue:
🐛 JSON Schema should have `options` as optional
### Environment information

```block
CLI:
  Version:                      1.9.2
  Color support:                true

Platform:
  CPU Architecture:             aarch64
  OS:                           macos

Environment:
  BIOME_LOG_PATH:               unset
  BIOME_LOG_PREFIX_NAME:        unset
  BIOME_CONFIG_PATH:            unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v18.17.1"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "npm/9.6.7"

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    true
  VCS disabled:                 false

Workspace:
  Open Documents:               0
```


### What happened?

I am using an object because I want to change the `fix` safetyness. I don't want to change `options` from the default.
<img width="1194" alt="image" src="https://github.com/user-attachments/assets/61e5b188-d93f-4379-8bc6-05297f7ea78a">


### Expected result

This should be valid config

### Code of Conduct

- [X] I agree to follow Biome's Code of Conduct


Discussion / hints:
Which version of the schema are you using?
I can't reproduce it with the latest schema 

Fix patch:
diff --git a/packages/@biomejs/biome/configuration_schema.json b/packages/@biomejs/biome/configuration_schema.json
index 93f122967de7..a70359f3a83f 100644
--- a/packages/@biomejs/biome/configuration_schema.json
+++ b/packages/@biomejs/biome/configuration_schema.json
@@ -2586,7 +2586,7 @@
 		},
 		"RuleWithAllowDomainOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2605,7 +2605,7 @@
 		},
 		"RuleWithComplexityOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2620,7 +2620,7 @@
 		},
 		"RuleWithConsistentArrayTypeOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2639,7 +2639,7 @@
 		},
 		"RuleWithConsistentMemberAccessibilityOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2656,7 +2656,7 @@
 		},
 		"RuleWithDeprecatedHooksOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2671,7 +2671,7 @@
 		},
 		"RuleWithFilenamingConventionOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2701,7 +2701,7 @@
 		},
 		"RuleWithHooksOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2716,7 +2716,7 @@
 		},
 		"RuleWithNamingConventionOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2735,7 +2735,7 @@
 		},
 		"RuleWithNoConsoleOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2754,7 +2754,7 @@
 		},
 		"RuleWithNoDoubleEqualsOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2773,7 +2773,7 @@
 		},
 		"RuleWithNoLabelWithoutControlOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2799,7 +2799,7 @@
 		},
 		"RuleWithNoRestrictedTypesOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2818,7 +2818,7 @@
 		},
 		"RuleWithRestrictedGlobalsOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2833,7 +2833,7 @@
 		},
 		"RuleWithRestrictedImportsOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2848,7 +2848,7 @@
 		},
 		"RuleWithUseComponentExportOnlyModulesOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2865,7 +2865,7 @@
 		},
 		"RuleWithUseImportExtensionsOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2884,7 +2884,7 @@
 		},
 		"RuleWithUseValidAutocompleteOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"level": {
 					"description": "The severity of the emitted diagnostics by the rule",
@@ -2899,7 +2899,7 @@
 		},
 		"RuleWithUtilityClassSortingOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
@@ -2918,7 +2918,7 @@
 		},
 		"RuleWithValidAriaRoleOptions": {
 			"type": "object",
-			"required": ["level", "options"],
+			"required": ["level"],
 			"properties": {
 				"fix": {
 					"description": "The kind of the code actions emitted by the rule",
diff --git a/xtask/codegen/src/generate_schema.rs b/xtask/codegen/src/generate_schema.rs
index 0c3eb8c985e2..aecfe297184e 100644
--- a/xtask/codegen/src/generate_schema.rs
+++ b/xtask/codegen/src/generate_schema.rs
@@ -86,8 +86,18 @@ fn rename_partial_references_in_schema(mut schema: RootSchema) -> RootSchema {
                 key = "RuleFixConfiguration".to_string();
             } else if let Some(stripped) = key.strip_prefix("RuleWithOptions_for_") {
                 key = format!("RuleWith{stripped}");
+                if let Schema::Object(schema_object) = &mut schema {
+                    if let Some(object) = &mut schema_object.object {
+                        object.required.remove("options");
+                    }
+                }
             } else if let Some(stripped) = key.strip_prefix("RuleWithFixOptions_for_") {
                 key = format!("RuleWith{stripped}");
+                if let Schema::Object(schema_object) = &mut schema {
+                    if let Some(object) = &mut schema_object.object {
+                        object.required.remove("options");
+                    }
+                }
             } else if let Some(stripped) = key
                 .strip_prefix("RuleConfiguration_for_")
                 .map(|x| x.strip_suffix("Options").unwrap_or(x))


Test patch: