diff --git a/keyboards/cannonkeys/aella/info.json b/keyboards/cannonkeys/aella/info.json
index 0cab722338..54679d5792 100644
--- a/keyboards/cannonkeys/aella/info.json
+++ b/keyboards/cannonkeys/aella/info.json
@@ -15,6 +15,14 @@
     "diode_direction": "COL2ROW",
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/cannonkeys/aella/rules.mk b/keyboards/cannonkeys/aella/rules.mk
index 480e866179..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/aella/rules.mk
+++ b/keyboards/cannonkeys/aella/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/an_c/info.json b/keyboards/cannonkeys/an_c/info.json
index 9de1ff5fff..e1e18f5167 100644
--- a/keyboards/cannonkeys/an_c/info.json
+++ b/keyboards/cannonkeys/an_c/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": ["60_ansi", "60_tsangan_hhkb"],
     "layouts": {
         "LAYOUT_60_ansi": {
diff --git a/keyboards/cannonkeys/an_c/rules.mk b/keyboards/cannonkeys/an_c/rules.mk
index 8d3de1b8b2..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/an_c/rules.mk
+++ b/keyboards/cannonkeys/an_c/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json
index 9565795169..c7ecea37f8 100644
--- a/keyboards/cannonkeys/balance/info.json
+++ b/keyboards/cannonkeys/balance/info.json
@@ -28,6 +28,15 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "encoder": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/cannonkeys/balance/rules.mk b/keyboards/cannonkeys/balance/rules.mk
index 5afdd3772f..04fe1eba2a 100644
--- a/keyboards/cannonkeys/balance/rules.mk
+++ b/keyboards/cannonkeys/balance/rules.mk
@@ -1,17 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -p FFFF -v FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-ENCODER_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/brutalv2_65/info.json b/keyboards/cannonkeys/brutalv2_65/info.json
index 0eddf11aaa..4cff1a7571 100644
--- a/keyboards/cannonkeys/brutalv2_65/info.json
+++ b/keyboards/cannonkeys/brutalv2_65/info.json
@@ -19,6 +19,14 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    },
     "community_layouts": [
         "65_ansi_blocker",
         "65_ansi_blocker_split_bs",
diff --git a/keyboards/cannonkeys/brutalv2_65/rules.mk b/keyboards/cannonkeys/brutalv2_65/rules.mk
index 480e866179..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/brutalv2_65/rules.mk
+++ b/keyboards/cannonkeys/brutalv2_65/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/cloudline/info.json b/keyboards/cannonkeys/cloudline/info.json
index d1bbce929a..ac1bca976b 100644
--- a/keyboards/cannonkeys/cloudline/info.json
+++ b/keyboards/cannonkeys/cloudline/info.json
@@ -44,6 +44,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": [
         "tkl_f13_ansi_tsangan",
         "tkl_f13_ansi_tsangan_split_bs_rshift",
diff --git a/keyboards/cannonkeys/cloudline/rules.mk b/keyboards/cannonkeys/cloudline/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/cloudline/rules.mk
+++ b/keyboards/cannonkeys/cloudline/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/crin/info.json b/keyboards/cannonkeys/crin/info.json
index a8468b3ed3..f61d0e12e5 100644
--- a/keyboards/cannonkeys/crin/info.json
+++ b/keyboards/cannonkeys/crin/info.json
@@ -24,6 +24,15 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT"
     },
diff --git a/keyboards/cannonkeys/crin/rules.mk b/keyboards/cannonkeys/crin/rules.mk
index a5906b6a90..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/crin/rules.mk
+++ b/keyboards/cannonkeys/crin/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/db60/info.json b/keyboards/cannonkeys/db60/info.json
index 112ebaddde..0c437ed921 100644
--- a/keyboards/cannonkeys/db60/info.json
+++ b/keyboards/cannonkeys/db60/info.json
@@ -36,5 +36,15 @@
         "driver": "spi"
     },
     "processor": "STM32F072",
-    "bootloader": "stm32-dfu"
+    "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    }
 }
diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rules.mk
index 023b329ad2..60addd7fe7 100644
--- a/keyboards/cannonkeys/db60/rules.mk
+++ b/keyboards/cannonkeys/db60/rules.mk
@@ -1,17 +1,4 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
 
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes   # Mouse keys
-EXTRAKEY_ENABLE = yes   # Audio control and System control
-CONSOLE_ENABLE = yes    # Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
 DEFAULT_FOLDER = cannonkeys/db60/rev2
-
diff --git a/keyboards/cannonkeys/devastatingtkl/info.json b/keyboards/cannonkeys/devastatingtkl/info.json
index a3b269f1cf..7acea3fe8b 100644
--- a/keyboards/cannonkeys/devastatingtkl/info.json
+++ b/keyboards/cannonkeys/devastatingtkl/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": [
         "tkl_f13_ansi",
         "tkl_f13_ansi_split_bs_rshift",
diff --git a/keyboards/cannonkeys/devastatingtkl/rules.mk b/keyboards/cannonkeys/devastatingtkl/rules.mk
index 8d3de1b8b2..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/devastatingtkl/rules.mk
+++ b/keyboards/cannonkeys/devastatingtkl/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/gentoo/info.json b/keyboards/cannonkeys/gentoo/info.json
index a371ae4232..3d8a4acac9 100644
--- a/keyboards/cannonkeys/gentoo/info.json
+++ b/keyboards/cannonkeys/gentoo/info.json
@@ -19,6 +19,14 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    },
     "community_layouts": [
         "65_ansi",
         "65_ansi_split_bs",
diff --git a/keyboards/cannonkeys/gentoo/rules.mk b/keyboards/cannonkeys/gentoo/rules.mk
index 480e866179..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/gentoo/rules.mk
+++ b/keyboards/cannonkeys/gentoo/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/gentoo_hs/info.json b/keyboards/cannonkeys/gentoo_hs/info.json
index ef496628da..fa97ae5877 100644
--- a/keyboards/cannonkeys/gentoo_hs/info.json
+++ b/keyboards/cannonkeys/gentoo_hs/info.json
@@ -19,6 +19,14 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    },
     "layout_aliases": {
         "LAYOUT_default": "LAYOUT_65_ansi_rwkl"
     },
diff --git a/keyboards/cannonkeys/gentoo_hs/rules.mk b/keyboards/cannonkeys/gentoo_hs/rules.mk
index 4ee7a29916..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/gentoo_hs/rules.mk
+++ b/keyboards/cannonkeys/gentoo_hs/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/instant60/info.json b/keyboards/cannonkeys/instant60/info.json
index 355ae99f0c..bca90e5015 100644
--- a/keyboards/cannonkeys/instant60/info.json
+++ b/keyboards/cannonkeys/instant60/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": ["60_ansi", "60_tsangan_hhkb"],
     "layouts": {
         "LAYOUT_60_ansi": {
diff --git a/keyboards/cannonkeys/instant60/rules.mk b/keyboards/cannonkeys/instant60/rules.mk
index 8d3de1b8b2..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/instant60/rules.mk
+++ b/keyboards/cannonkeys/instant60/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/instant65/info.json b/keyboards/cannonkeys/instant65/info.json
index 3c447a4bd3..63e84be0aa 100644
--- a/keyboards/cannonkeys/instant65/info.json
+++ b/keyboards/cannonkeys/instant65/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/instant65/rules.mk b/keyboards/cannonkeys/instant65/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/instant65/rules.mk
+++ b/keyboards/cannonkeys/instant65/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/malicious_ergo/info.json b/keyboards/cannonkeys/malicious_ergo/info.json
index d5941f5f96..3897aea08b 100644
--- a/keyboards/cannonkeys/malicious_ergo/info.json
+++ b/keyboards/cannonkeys/malicious_ergo/info.json
@@ -45,6 +45,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/malicious_ergo/rules.mk b/keyboards/cannonkeys/malicious_ergo/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/malicious_ergo/rules.mk
+++ b/keyboards/cannonkeys/malicious_ergo/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/obliterated75/info.json b/keyboards/cannonkeys/obliterated75/info.json
index d831eb1aca..19227c5150 100644
--- a/keyboards/cannonkeys/obliterated75/info.json
+++ b/keyboards/cannonkeys/obliterated75/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/cannonkeys/obliterated75/rules.mk b/keyboards/cannonkeys/obliterated75/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/obliterated75/rules.mk
+++ b/keyboards/cannonkeys/obliterated75/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/onyx/info.json b/keyboards/cannonkeys/onyx/info.json
index 8be4673df4..5ae7039049 100644
--- a/keyboards/cannonkeys/onyx/info.json
+++ b/keyboards/cannonkeys/onyx/info.json
@@ -20,6 +20,15 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/cannonkeys/onyx/rules.mk b/keyboards/cannonkeys/onyx/rules.mk
index a5906b6a90..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/onyx/rules.mk
+++ b/keyboards/cannonkeys/onyx/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/rekt1800/info.json b/keyboards/cannonkeys/rekt1800/info.json
index 889ff5eff9..f9a58afa02 100644
--- a/keyboards/cannonkeys/rekt1800/info.json
+++ b/keyboards/cannonkeys/rekt1800/info.json
@@ -20,6 +20,15 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/cannonkeys/rekt1800/rules.mk b/keyboards/cannonkeys/rekt1800/rules.mk
index 01d0c0ade1..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/rekt1800/rules.mk
+++ b/keyboards/cannonkeys/rekt1800/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = no
-
diff --git a/keyboards/cannonkeys/sagittarius/info.json b/keyboards/cannonkeys/sagittarius/info.json
index d9236b3905..876c68e82e 100644
--- a/keyboards/cannonkeys/sagittarius/info.json
+++ b/keyboards/cannonkeys/sagittarius/info.json
@@ -44,6 +44,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/sagittarius/rules.mk b/keyboards/cannonkeys/sagittarius/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/sagittarius/rules.mk
+++ b/keyboards/cannonkeys/sagittarius/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/savage65/info.json b/keyboards/cannonkeys/savage65/info.json
index 0c2409713b..9d7d454e55 100644
--- a/keyboards/cannonkeys/savage65/info.json
+++ b/keyboards/cannonkeys/savage65/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_iso_blocker"],
     "layouts": {
         "LAYOUT_default": {
diff --git a/keyboards/cannonkeys/savage65/rules.mk b/keyboards/cannonkeys/savage65/rules.mk
index 8d3de1b8b2..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/savage65/rules.mk
+++ b/keyboards/cannonkeys/savage65/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/tmov2/info.json b/keyboards/cannonkeys/tmov2/info.json
index ed834c73cd..acc5093221 100644
--- a/keyboards/cannonkeys/tmov2/info.json
+++ b/keyboards/cannonkeys/tmov2/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/tmov2/rules.mk b/keyboards/cannonkeys/tmov2/rules.mk
index 8d3de1b8b2..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/tmov2/rules.mk
+++ b/keyboards/cannonkeys/tmov2/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes	# Mouse keys
-EXTRAKEY_ENABLE = yes	# Audio control and System control
-CONSOLE_ENABLE = yes	# Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/tsukuyomi/info.json b/keyboards/cannonkeys/tsukuyomi/info.json
index 3542bca1f6..a874d3d293 100644
--- a/keyboards/cannonkeys/tsukuyomi/info.json
+++ b/keyboards/cannonkeys/tsukuyomi/info.json
@@ -39,6 +39,16 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/tsukuyomi/rules.mk b/keyboards/cannonkeys/tsukuyomi/rules.mk
index 86794ca0f7..0ab54aaaf7 100644
--- a/keyboards/cannonkeys/tsukuyomi/rules.mk
+++ b/keyboards/cannonkeys/tsukuyomi/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/cannonkeys/vicious40/info.json b/keyboards/cannonkeys/vicious40/info.json
index d6669155cf..b2d68545f0 100644
--- a/keyboards/cannonkeys/vicious40/info.json
+++ b/keyboards/cannonkeys/vicious40/info.json
@@ -20,6 +20,15 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true
+    },
     "layouts": {
         "LAYOUT_default": {
             "layout": [
diff --git a/keyboards/cannonkeys/vicious40/rules.mk b/keyboards/cannonkeys/vicious40/rules.mk
index 9d14eaf9aa..04fe1eba2a 100644
--- a/keyboards/cannonkeys/vicious40/rules.mk
+++ b/keyboards/cannonkeys/vicious40/rules.mk
@@ -1,16 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -p FFFF -v FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/centromere/info.json b/keyboards/centromere/info.json
index 280ab8bd7e..c190bd84d7 100644
--- a/keyboards/centromere/info.json
+++ b/keyboards/centromere/info.json
@@ -10,6 +10,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "caterina",
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "unicode": true
+    },
     "community_layouts": ["split_3x5_3", "split_3x6_3"],
     "layout_aliases": {
         "LAYOUT": "LAYOUT_split_3x6_3"
diff --git a/keyboards/centromere/rules.mk b/keyboards/centromere/rules.mk
index 26081e4132..0bb4817a8b 100644
--- a/keyboards/centromere/rules.mk
+++ b/keyboards/centromere/rules.mk
@@ -1,19 +1,6 @@
 # Processor frequency
 F_CPU = 8000000
 
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-UNICODE_ENABLE = yes
 CUSTOM_MATRIX = lite
 
 # project specific files
diff --git a/keyboards/checkerboards/phoenix45_ortho/info.json b/keyboards/checkerboards/phoenix45_ortho/info.json
index 5bd7c644cf..43565b9852 100644
--- a/keyboards/checkerboards/phoenix45_ortho/info.json
+++ b/keyboards/checkerboards/phoenix45_ortho/info.json
@@ -20,6 +20,15 @@
     },
     "processor": "atmega32u2",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "command": true,
+        "nkro": true,
+        "unicode": true,
+        "encoder": true
+    },
     "layouts": {
         "LAYOUT_ortho_2x225u": {
             "layout": [
diff --git a/keyboards/checkerboards/phoenix45_ortho/rules.mk b/keyboards/checkerboards/phoenix45_ortho/rules.mk
index 634fd79c1d..4df55cd220 100644
--- a/keyboards/checkerboards/phoenix45_ortho/rules.mk
+++ b/keyboards/checkerboards/phoenix45_ortho/rules.mk
@@ -1,17 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-UNICODE_ENABLE = yes        # Unicode
-ENCODER_ENABLE = yes	    # Encoder enable
-
 # Disable unsupported hardware
 AUDIO_SUPPORTED = no
 BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/checkerboards/quark/info.json b/keyboards/checkerboards/quark/info.json
index ca84460348..22fa758e7e 100644
--- a/keyboards/checkerboards/quark/info.json
+++ b/keyboards/checkerboards/quark/info.json
@@ -41,6 +41,16 @@
     },
     "processor": "atmega32u2",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "command": true,
+        "nkro": true,
+        "rgblight": true,
+        "unicode": true,
+        "encoder": true
+    },
     "community_layouts": ["ortho_4x12", "planck_mit"],
     "layouts": {
         "LAYOUT_ortho_5x12_2x225u": {
diff --git a/keyboards/checkerboards/quark/rules.mk b/keyboards/checkerboards/quark/rules.mk
index 2dd2e10d80..4df55cd220 100644
--- a/keyboards/checkerboards/quark/rules.mk
+++ b/keyboards/checkerboards/quark/rules.mk
@@ -1,19 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-UNICODE_ENABLE = yes        # Unicode
-ENCODER_ENABLE = yes	    # Enable Rotary Encoders
-
-
 # Disable unsupported hardware
 AUDIO_SUPPORTED = no
 BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json
index a47253d5b4..e242bfc5d9 100644
--- a/keyboards/checkerboards/quark_squared/info.json
+++ b/keyboards/checkerboards/quark_squared/info.json
@@ -41,6 +41,16 @@
     },
     "processor": "atmega32u2",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "command": true,
+        "nkro": true,
+        "rgblight": true,
+        "unicode": true,
+        "encoder": true
+    },
     "layouts": {
         "LAYOUT_4_2x225u": {
             "layout": [
diff --git a/keyboards/checkerboards/quark_squared/rules.mk b/keyboards/checkerboards/quark_squared/rules.mk
index 88b0022c5f..4df55cd220 100644
--- a/keyboards/checkerboards/quark_squared/rules.mk
+++ b/keyboards/checkerboards/quark_squared/rules.mk
@@ -1,17 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-UNICODE_ENABLE = yes        # Unicode
-ENCODER_ENABLE = yes 		# Enable Rotary Encoders
 # Disable unsupported hardware
 AUDIO_SUPPORTED = no
 BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/checkerboards/snop60/info.json b/keyboards/checkerboards/snop60/keyboard.json
similarity index 96%
rename from keyboards/checkerboards/snop60/info.json
rename to keyboards/checkerboards/snop60/keyboard.json
index f88186fadd..60b22caf76 100644
--- a/keyboards/checkerboards/snop60/info.json
+++ b/keyboards/checkerboards/snop60/keyboard.json
@@ -47,6 +47,19 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "build": {
+        "lto": true
+    },
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true,
+        "encoder": true
+    },
     "layout_aliases": {
         "LAYOUT_7u": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
         "LAYOUT_2x3u": "LAYOUT_60_ansi_tsangan_split_bs_rshift_space"
diff --git a/keyboards/checkerboards/snop60/rules.mk b/keyboards/checkerboards/snop60/rules.mk
deleted file mode 100644
index d24c9861b4..0000000000
--- a/keyboards/checkerboards/snop60/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-ENCODER_ENBALE = yes	    # Enable Rotary Encoders
diff --git a/keyboards/chlx/str_merro60/info.json b/keyboards/chlx/str_merro60/keyboard.json
similarity index 99%
rename from keyboards/chlx/str_merro60/info.json
rename to keyboards/chlx/str_merro60/keyboard.json
index 89fdd4baa1..15903f2f6c 100644
--- a/keyboards/chlx/str_merro60/info.json
+++ b/keyboards/chlx/str_merro60/keyboard.json
@@ -36,12 +36,20 @@
     "diode_direction": "ROW2COL",
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true
+    },
     "layout_aliases": {
         "LAYOUT_default": "LAYOUT_all",
         "LAYOUT_hhkb": "LAYOUT_60_hhkb",
         "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
         "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
     },
+    "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"],
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/chlx/str_merro60/rules.mk b/keyboards/chlx/str_merro60/rules.mk
deleted file mode 100644
index 9cceab1f74..0000000000
--- a/keyboards/chlx/str_merro60/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
-Layouts = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb
diff --git a/keyboards/cipulot/kawayo/info.json b/keyboards/cipulot/kawayo/keyboard.json
similarity index 99%
rename from keyboards/cipulot/kawayo/info.json
rename to keyboards/cipulot/kawayo/keyboard.json
index 85a5f81c2b..ac4d24b9b5 100644
--- a/keyboards/cipulot/kawayo/info.json
+++ b/keyboards/cipulot/kawayo/keyboard.json
@@ -6,7 +6,10 @@
     "usb": {
         "vid": "0x6369",
         "pid": "0x6B7F",
-        "device_version": "0.0.1"
+        "device_version": "0.0.1",
+        "shared_endpoint": {
+            "keyboard": true
+        }
     },
     "matrix_pins": {
         "cols": ["B10", "A0", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14", "A4", "A3", "A2", "A1"],
@@ -15,6 +18,12 @@
     "diode_direction": "COL2ROW",
     "processor": "STM32F411",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_65_ansi_blocker_split_bs"
     },
diff --git a/keyboards/cipulot/kawayo/rules.mk b/keyboards/cipulot/kawayo/rules.mk
deleted file mode 100644
index fbab9885cd..0000000000
--- a/keyboards/cipulot/kawayo/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-KEYBOARD_SHARED_EP = yes
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes      # Mouse keys
-EXTRAKEY_ENABLE = yes      # Audio control and System control
-CONSOLE_ENABLE = no        # Console for debug
-COMMAND_ENABLE = no        # Commands for debug and configuration
-NKRO_ENABLE = yes          # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no          # Audio output
diff --git a/keyboards/clueboard/66_hotswap/prototype/info.json b/keyboards/clueboard/66_hotswap/prototype/keyboard.json
similarity index 99%
rename from keyboards/clueboard/66_hotswap/prototype/info.json
rename to keyboards/clueboard/66_hotswap/prototype/keyboard.json
index 2ef1fbec1e..9d0b0dd27c 100644
--- a/keyboards/clueboard/66_hotswap/prototype/info.json
+++ b/keyboards/clueboard/66_hotswap/prototype/keyboard.json
@@ -16,6 +16,9 @@
     "nkro": true,
     "rgblight": true
   },
+  "build": {
+    "lto": true
+  },
   "indicators": {
     "caps_lock": "B4"
   },
diff --git a/keyboards/clueboard/66_hotswap/prototype/rules.mk b/keyboards/clueboard/66_hotswap/prototype/rules.mk
deleted file mode 100644
index 4da205a168..0000000000
--- a/keyboards/clueboard/66_hotswap/prototype/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LTO_ENABLE = yes
diff --git a/keyboards/coarse/ixora/info.json b/keyboards/coarse/ixora/keyboard.json
similarity index 93%
rename from keyboards/coarse/ixora/info.json
rename to keyboards/coarse/ixora/keyboard.json
index 8d51f1e927..33ba2270ac 100644
--- a/keyboards/coarse/ixora/info.json
+++ b/keyboards/coarse/ixora/keyboard.json
@@ -20,6 +20,12 @@
     },
     "processor": "STM32F042",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true
+    },
     "debounce": 0,
     "layouts": {
         "LAYOUT_full": {
diff --git a/keyboards/coarse/ixora/rules.mk b/keyboards/coarse/ixora/rules.mk
deleted file mode 100644
index 285aeb8202..0000000000
--- a/keyboards/coarse/ixora/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes				# Mouse keys
-EXTRAKEY_ENABLE = yes				# Audio control and System control
-CONSOLE_ENABLE = no					# Console for debug
-COMMAND_ENABLE = no    				# Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
diff --git a/keyboards/coarse/vinta/info.json b/keyboards/coarse/vinta/keyboard.json
similarity index 99%
rename from keyboards/coarse/vinta/info.json
rename to keyboards/coarse/vinta/keyboard.json
index 3dd9898f1a..df9aa7e5a1 100644
--- a/keyboards/coarse/vinta/info.json
+++ b/keyboards/coarse/vinta/keyboard.json
@@ -15,6 +15,12 @@
   "diode_direction": "COL2ROW",
   "processor": "STM32F042",
   "bootloader": "stm32-dfu",
+  "features": {
+    "bootmagic": true,
+    "mousekey": true,
+    "extrakey": true,
+    "nkro": true
+  },
   "debounce": 0,
   "community_layouts": ["65_ansi_blocker"],
   "layout_aliases": {
diff --git a/keyboards/coarse/vinta/rules.mk b/keyboards/coarse/vinta/rules.mk
deleted file mode 100644
index 285aeb8202..0000000000
--- a/keyboards/coarse/vinta/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes				# Mouse keys
-EXTRAKEY_ENABLE = yes				# Audio control and System control
-CONSOLE_ENABLE = no					# Console for debug
-COMMAND_ENABLE = no    				# Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
diff --git a/keyboards/controllerworks/city42/info.json b/keyboards/controllerworks/city42/info.json
index bff73f7e6f..6657a7485b 100644
--- a/keyboards/controllerworks/city42/info.json
+++ b/keyboards/controllerworks/city42/info.json
@@ -14,7 +14,8 @@
         "extrakey": true,
         "mousekey": true,
         "nkro": true,
-        "rgb_matrix": true
+        "rgb_matrix": true,
+        "pointing_device": true
     },
     "matrix_pins": {
         "cols": ["GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5"],
@@ -174,4 +175,4 @@
             ]
         }
     }
-}
\ No newline at end of file
+}
diff --git a/keyboards/controllerworks/city42/rules.mk b/keyboards/controllerworks/city42/rules.mk
index 2e0f2befbf..fb5d649735 100644
--- a/keyboards/controllerworks/city42/rules.mk
+++ b/keyboards/controllerworks/city42/rules.mk
@@ -1,2 +1 @@
-POINTING_DEVICE_ENABLE = yes
-POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
\ No newline at end of file
+POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
diff --git a/keyboards/converter/adb_usb/info.json b/keyboards/converter/adb_usb/info.json
index b553dfc10f..47467a97c7 100644
--- a/keyboards/converter/adb_usb/info.json
+++ b/keyboards/converter/adb_usb/info.json
@@ -8,6 +8,11 @@
     "pid": "0x0ADB",
     "device_version": "1.0.1"
   },
+  "features": {
+    "bootmagic": false,
+    "mousekey": false,
+    "extrakey": true
+  },
   "layouts": {
     "LAYOUT_ext_ansi": {
       "layout": [
diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk
index 4e4d068a70..28df56c337 100644
--- a/keyboards/converter/adb_usb/rules.mk
+++ b/keyboards/converter/adb_usb/rules.mk
@@ -1,15 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no        # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no         # Mouse keys
-EXTRAKEY_ENABLE = yes        # Audio control and System control
-CONSOLE_ENABLE = no          # Console for debug
-COMMAND_ENABLE = no          # Commands for debug and configuration
-NKRO_ENABLE = no             # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no        # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no         # Enable keyboard RGB underglow
-AUDIO_ENABLE = no            # Audio output
 CUSTOM_MATRIX = yes
 
 SRC += matrix.c adb.c led.c
diff --git a/keyboards/converter/hp_46010a/info.json b/keyboards/converter/hp_46010a/info.json
index da29c72fac..0296bda5e9 100644
--- a/keyboards/converter/hp_46010a/info.json
+++ b/keyboards/converter/hp_46010a/info.json
@@ -10,6 +10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "halfkay",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "console": true,
+    "nkro": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk
index 104381f12f..3c6124d20a 100644
--- a/keyboards/converter/hp_46010a/rules.mk
+++ b/keyboards/converter/hp_46010a/rules.mk
@@ -1,16 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
-SPLIT_KEYBOARD = no
 WAIT_FOR_USB = yes
 CUSTOM_MATRIX = yes
 
diff --git a/keyboards/converter/ibm_terminal/info.json b/keyboards/converter/ibm_terminal/info.json
index 39840eb627..b95ea58d20 100644
--- a/keyboards/converter/ibm_terminal/info.json
+++ b/keyboards/converter/ibm_terminal/info.json
@@ -10,6 +10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "nkro": true,
+    "ps2": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk
index c04e7e01a4..038d8da5a2 100644
--- a/keyboards/converter/ibm_terminal/rules.mk
+++ b/keyboards/converter/ibm_terminal/rules.mk
@@ -1,16 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
-PS2_ENABLE = yes
 PS2_DRIVER = usart
 CUSTOM_MATRIX = yes
 
diff --git a/keyboards/converter/m0110_usb/info.json b/keyboards/converter/m0110_usb/info.json
index 1869d2dacb..522f83caba 100644
--- a/keyboards/converter/m0110_usb/info.json
+++ b/keyboards/converter/m0110_usb/info.json
@@ -10,6 +10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "caterina",
+  "features": {
+    "bootmagic": false,
+    "mousekey": false,
+    "console": true,
+    "extrakey": true,
+    "usb_hid": true
+  },
   "layouts": {
     "LAYOUT_ansi": {
       "layout": [
diff --git a/keyboards/converter/m0110_usb/rules.mk b/keyboards/converter/m0110_usb/rules.mk
index a9dc1a9e49..7021c1052a 100644
--- a/keyboards/converter/m0110_usb/rules.mk
+++ b/keyboards/converter/m0110_usb/rules.mk
@@ -1,17 +1,6 @@
 # Processor frequency
 F_CPU = 8000000
 
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE  = no   # Mouse keys
-CONSOLE_ENABLE   = yes  # Console for debug
-COMMAND_ENABLE   = no   # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-EXTRAKEY_ENABLE  = yes
-USB_HID_ENABLE   = yes
-BACKLIGHT_ENABLE = no
 CUSTOM_MATRIX    = yes
 
 SRC = matrix.c m0110.c
diff --git a/keyboards/converter/palm_usb/info.json b/keyboards/converter/palm_usb/info.json
index 2fe66720ec..c5b893d757 100644
--- a/keyboards/converter/palm_usb/info.json
+++ b/keyboards/converter/palm_usb/info.json
@@ -9,5 +9,12 @@
         "device_version": "1.0.0"
     },
     "processor": "atmega32u4",
-    "bootloader": "caterina"
+    "bootloader": "caterina",
+    "features": {
+        "bootmagic": false,
+        "mousekey": false,
+        "extrakey": false,
+        "console": true,
+        "command": true
+    }
 }
diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk
index 72d9daf6d9..bdb3bb0d6b 100644
--- a/keyboards/converter/palm_usb/rules.mk
+++ b/keyboards/converter/palm_usb/rules.mk
@@ -1,15 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = no        # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
 #HARDWARE_SERIAL = yes
 CUSTOM_MATRIX = yes
 
diff --git a/keyboards/converter/periboard_512/info.json b/keyboards/converter/periboard_512/keyboard.json
similarity index 98%
rename from keyboards/converter/periboard_512/info.json
rename to keyboards/converter/periboard_512/keyboard.json
index 08cc8ee9bf..b335931493 100644
--- a/keyboards/converter/periboard_512/info.json
+++ b/keyboards/converter/periboard_512/keyboard.json
@@ -10,6 +10,11 @@
     },
     "processor": "at90usb1286",
     "bootloader": "halfkay",
+    "features": {
+        "bootmagic": false,
+        "mousekey": false,
+        "extrakey": false
+    },
     "diode_direction": "ROW2COL",
     "matrix_pins": {
         "cols": ["B7", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "E0", "E1", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7"],
diff --git a/keyboards/converter/periboard_512/rules.mk b/keyboards/converter/periboard_512/rules.mk
deleted file mode 100644
index 1eeda920b4..0000000000
--- a/keyboards/converter/periboard_512/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no        # Mouse keys
-EXTRAKEY_ENABLE = no        # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/converter/siemens_tastatur/info.json b/keyboards/converter/siemens_tastatur/info.json
index 8ed2523c26..571d06a5c3 100644
--- a/keyboards/converter/siemens_tastatur/info.json
+++ b/keyboards/converter/siemens_tastatur/info.json
@@ -10,6 +10,15 @@
     },
     "processor": "STM32F103",
     "bootloader": "stm32duino",
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "sleep_led": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/converter/siemens_tastatur/rules.mk b/keyboards/converter/siemens_tastatur/rules.mk
index 1bc8ee188b..3215e3588a 100644
--- a/keyboards/converter/siemens_tastatur/rules.mk
+++ b/keyboards/converter/siemens_tastatur/rules.mk
@@ -1,17 +1,2 @@
-SRC = matrix.c
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes   # Mouse keys
-EXTRAKEY_ENABLE = yes   # Audio control and System control
-CONSOLE_ENABLE = yes    # Console for debug
-COMMAND_ENABLE = yes    # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = no
-SLEEP_LED_ENABLE = yes
 CUSTOM_MATRIX = yes
-
-
+SRC = matrix.c
diff --git a/keyboards/converter/sun_usb/info.json b/keyboards/converter/sun_usb/info.json
index a243a64da2..e4031595ad 100644
--- a/keyboards/converter/sun_usb/info.json
+++ b/keyboards/converter/sun_usb/info.json
@@ -9,5 +9,13 @@
       "device_version": "1.0.0"
     },
     "processor": "atmega32u4",
-    "bootloader": "lufa-dfu"
+    "bootloader": "lufa-dfu",
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    }
 }
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index ae20f51b37..d3ec00c5d5 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -1,15 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
 #HARDWARE_SERIAL = yes
 CUSTOM_MATRIX = yes
 
diff --git a/keyboards/converter/xt_usb/info.json b/keyboards/converter/xt_usb/info.json
index 1c9bcf5e34..649b283329 100644
--- a/keyboards/converter/xt_usb/info.json
+++ b/keyboards/converter/xt_usb/info.json
@@ -10,6 +10,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "halfkay",
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true
+    },
     "layouts": {
         "LAYOUT_xt": {
             "layout": [
diff --git a/keyboards/converter/xt_usb/rules.mk b/keyboards/converter/xt_usb/rules.mk
index f98bdcc5d3..3fd6b1cfa6 100644
--- a/keyboards/converter/xt_usb/rules.mk
+++ b/keyboards/converter/xt_usb/rules.mk
@@ -1,15 +1,3 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = yes        # Console for debug
-COMMAND_ENABLE = yes        # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
 CUSTOM_MATRIX = yes
 
 SRC += matrix.c xt_interrupt.c
diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json
index 82da2f800f..1fb94c7052 100644
--- a/keyboards/coseyfannitutti/discipline/info.json
+++ b/keyboards/coseyfannitutti/discipline/info.json
@@ -16,6 +16,11 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true
+    },
     "layout_aliases": {
         "LAYOUT_65_ansi_2_right_mods": "LAYOUT_65_ansi_blocker",
         "LAYOUT_65_iso_2_right_mods": "LAYOUT_65_iso_blocker",
diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk
index 18550f0a64..c2ee0bc86f 100644
--- a/keyboards/coseyfannitutti/discipline/rules.mk
+++ b/keyboards/coseyfannitutti/discipline/rules.mk
@@ -1,15 +1,2 @@
 # Processor frequency
 F_CPU = 16000000
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no        # Console for debug
-COMMAND_ENABLE = no        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/coseyfannitutti/mysterium/info.json b/keyboards/coseyfannitutti/mysterium/info.json
index ff6e2de22b..0d75d19229 100644
--- a/keyboards/coseyfannitutti/mysterium/info.json
+++ b/keyboards/coseyfannitutti/mysterium/info.json
@@ -15,6 +15,11 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "community_layouts": ["tkl_ansi"],
     "layouts": {
         "LAYOUT_tkl_ansi": {
diff --git a/keyboards/coseyfannitutti/mysterium/rules.mk b/keyboards/coseyfannitutti/mysterium/rules.mk
index b6082e107c..c2ee0bc86f 100644
--- a/keyboards/coseyfannitutti/mysterium/rules.mk
+++ b/keyboards/coseyfannitutti/mysterium/rules.mk
@@ -1,15 +1,2 @@
 # Processor frequency
 F_CPU = 16000000
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no        # Console for debug
-COMMAND_ENABLE = no        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/cozykeys/speedo/v3/info.json b/keyboards/cozykeys/speedo/v3/info.json
index 3a084b04ba..7636d9b702 100644
--- a/keyboards/cozykeys/speedo/v3/info.json
+++ b/keyboards/cozykeys/speedo/v3/info.json
@@ -36,6 +36,12 @@
   "diode_direction": "COL2ROW",
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "rgblight": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
diff --git a/keyboards/cozykeys/speedo/v3/rules.mk b/keyboards/cozykeys/speedo/v3/rules.mk
index 78ff4d5d60..baf23318cc 100644
--- a/keyboards/cozykeys/speedo/v3/rules.mk
+++ b/keyboards/cozykeys/speedo/v3/rules.mk
@@ -1,14 +1 @@
 PIN_COMPATIBLE = elite_c
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/crimsonkeyboards/resume1800/info.json b/keyboards/crimsonkeyboards/resume1800/info.json
index 23257be46e..f88b703208 100644
--- a/keyboards/crimsonkeyboards/resume1800/info.json
+++ b/keyboards/crimsonkeyboards/resume1800/info.json
@@ -20,6 +20,11 @@
     },
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true
+    },
     "layout_aliases": {
         "LAYOUT_resume1800_ansi_all": "LAYOUT_ansi_all",
         "LAYOUT_resume1800_iso_all": "LAYOUT_iso_all"
diff --git a/keyboards/crimsonkeyboards/resume1800/rules.mk b/keyboards/crimsonkeyboards/resume1800/rules.mk
index 18550f0a64..c2ee0bc86f 100644
--- a/keyboards/crimsonkeyboards/resume1800/rules.mk
+++ b/keyboards/crimsonkeyboards/resume1800/rules.mk
@@ -1,15 +1,2 @@
 # Processor frequency
 F_CPU = 16000000
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no        # Console for debug
-COMMAND_ENABLE = no        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/crypt_macro/info.json b/keyboards/crypt_macro/info.json
index 1b340ff74f..e8771e363e 100644
--- a/keyboards/crypt_macro/info.json
+++ b/keyboards/crypt_macro/info.json
@@ -31,6 +31,13 @@
     },
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true
+    },
     "matrix_pins": {
         "direct": [
             ["B12", "B6", "B7"],
diff --git a/keyboards/crypt_macro/rules.mk b/keyboards/crypt_macro/rules.mk
index cc9d7bb3f5..0ab54aaaf7 100644
--- a/keyboards/crypt_macro/rules.mk
+++ b/keyboards/crypt_macro/rules.mk
@@ -1,15 +1,2 @@
 # Wildcard to allow APM32 MCU
 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/custommk/genesis/rev1/keyboard.json b/keyboards/custommk/genesis/rev1/keyboard.json
index f859a6b9bf..7025834d91 100644
--- a/keyboards/custommk/genesis/rev1/keyboard.json
+++ b/keyboards/custommk/genesis/rev1/keyboard.json
@@ -45,6 +45,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true,
+        "encoder": true
+    },
     "layouts": {
         "LAYOUT_ortho_5x4": {
             "layout": [
diff --git a/keyboards/custommk/genesis/rev2/info.json b/keyboards/custommk/genesis/rev2/keyboard.json
similarity index 95%
rename from keyboards/custommk/genesis/rev2/info.json
rename to keyboards/custommk/genesis/rev2/keyboard.json
index 5760ba52cd..d56cdb9df5 100644
--- a/keyboards/custommk/genesis/rev2/info.json
+++ b/keyboards/custommk/genesis/rev2/keyboard.json
@@ -45,6 +45,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true,
+        "encoder": true
+    },
     "layouts": {
         "LAYOUT_ortho_5x4": {
             "layout": [
diff --git a/keyboards/custommk/genesis/rev2/rules.mk b/keyboards/custommk/genesis/rev2/rules.mk
deleted file mode 100644
index 212c267b25..0000000000
--- a/keyboards/custommk/genesis/rev2/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-ENCODER_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/custommk/genesis/rules.mk b/keyboards/custommk/genesis/rules.mk
index cb164c1a89..3d64c0af2b 100644
--- a/keyboards/custommk/genesis/rules.mk
+++ b/keyboards/custommk/genesis/rules.mk
@@ -1,15 +1 @@
-# Build Options
-#   change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes       # Mouse keys
-EXTRAKEY_ENABLE = yes       # Audio control and System control
-CONSOLE_ENABLE = no         # Console for debug
-COMMAND_ENABLE = no         # Commands for debug and configuration
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-ENCODER_ENABLE = yes
-
 DEFAULT_FOLDER = custommk/genesis/rev2