diff --git a/keyboards/eco/info.json b/keyboards/eco/info.json
index 74c66fdcb9..6a1b2adda1 100644
--- a/keyboards/eco/info.json
+++ b/keyboards/eco/info.json
@@ -3,16 +3,6 @@
   "manufacturer": "Bishop Keyboards",
   "url": "",
   "maintainer": "qmk",
-  "features": {
-    "backlight": true,
-    "bootmagic": false,
-    "command": true,
-    "console": false,
-    "extrakey": true,
-    "midi": true,
-    "mousekey": false,
-    "nkro": false
-  },
   "usb": {
     "vid": "0x1337",
     "pid": "0x6006"
diff --git a/keyboards/eco/rev1/info.json b/keyboards/eco/rev1/keyboard.json
similarity index 93%
rename from keyboards/eco/rev1/info.json
rename to keyboards/eco/rev1/keyboard.json
index f2a7842ce4..1b3cb5f8df 100644
--- a/keyboards/eco/rev1/info.json
+++ b/keyboards/eco/rev1/keyboard.json
@@ -7,6 +7,16 @@
         "rows": ["B1", "B6", "B2", "B3"]
     },
     "diode_direction": "COL2ROW",
+    "features": {
+        "backlight": false,
+        "bootmagic": false,
+        "command": true,
+        "console": false,
+        "extrakey": true,
+        "midi": true,
+        "mousekey": false,
+        "nkro": false
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/eco/rev1/rules.mk b/keyboards/eco/rev1/rules.mk
deleted file mode 100644
index f845616741..0000000000
--- a/keyboards/eco/rev1/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BACKLIGHT_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/eco/rev2/info.json b/keyboards/eco/rev2/keyboard.json
similarity index 93%
rename from keyboards/eco/rev2/info.json
rename to keyboards/eco/rev2/keyboard.json
index 8148e78f85..8effdd85e5 100644
--- a/keyboards/eco/rev2/info.json
+++ b/keyboards/eco/rev2/keyboard.json
@@ -7,6 +7,16 @@
         "rows": ["D7", "B5", "B4", "E6"]
     },
     "diode_direction": "COL2ROW",
+    "features": {
+        "backlight": false,
+        "bootmagic": false,
+        "command": true,
+        "console": false,
+        "extrakey": true,
+        "midi": true,
+        "mousekey": false,
+        "nkro": false
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/eco/rev2/rules.mk b/keyboards/eco/rev2/rules.mk
deleted file mode 100644
index f845616741..0000000000
--- a/keyboards/eco/rev2/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BACKLIGHT_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/edi/hardlight/mk2/info.json b/keyboards/edi/hardlight/mk2/info.json
index 2be212702a..cb337b71c8 100644
--- a/keyboards/edi/hardlight/mk2/info.json
+++ b/keyboards/edi/hardlight/mk2/info.json
@@ -32,6 +32,17 @@
     "diode_direction": "COL2ROW",
     "processor": "STM32F072",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "nkro": true,
+        "rgblight": true,
+        "velocikey": true,
+        "key_lock": true
+    },
     "community_layouts": ["ortho_4x16"],
     "layouts": {
         "LAYOUT_ortho_4x16": {
diff --git a/keyboards/edi/hardlight/mk2/rules.mk b/keyboards/edi/hardlight/mk2/rules.mk
index b7b67ba5b2..0ab54aaaf7 100644
--- a/keyboards/edi/hardlight/mk2/rules.mk
+++ b/keyboards/edi/hardlight/mk2/rules.mk
@@ -1,18 +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 = no        # 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 = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-VELOCIKEY_ENABLE = yes
-KEY_LOCK_ENABLE = yes
-
diff --git a/keyboards/edinburgh41/info.json b/keyboards/edinburgh41/info.json
index 745710f92f..374f10b2b7 100644
--- a/keyboards/edinburgh41/info.json
+++ b/keyboards/edinburgh41/info.json
@@ -4,6 +4,14 @@
     "maintainer": "schwarzer-geiger",
     "bootloader": "atmel-dfu",
     "processor": "atmega32u4",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true,
+        "pointing_device": true
+    },
     "url": "https://github.com/schwarzer-geiger/Edinburgh41",
     "usb": {
         "device_version": "1.0.0",
diff --git a/keyboards/edinburgh41/rules.mk b/keyboards/edinburgh41/rules.mk
index bf33c793b6..c76a8bf8a1 100644
--- a/keyboards/edinburgh41/rules.mk
+++ b/keyboards/edinburgh41/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
-
-POINTING_DEVICE_ENABLE = yes
 POINTING_DEVICE_DRIVER = analog_joystick
diff --git a/keyboards/efreet/info.json b/keyboards/efreet/info.json
index b7749ed341..4a53df1294 100644
--- a/keyboards/efreet/info.json
+++ b/keyboards/efreet/info.json
@@ -20,6 +20,13 @@
     },
     "processor": "atmega32u2",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "backlight": true
+    },
     "community_layouts": ["ortho_4x12", "planck_mit"],
     "layouts": {
         "LAYOUT_planck_mit": {
diff --git a/keyboards/efreet/rules.mk b/keyboards/efreet/rules.mk
index f82a86f3e3..09057bea54 100644
--- a/keyboards/efreet/rules.mk
+++ b/keyboards/efreet/rules.mk
@@ -1,16 +1,3 @@
-# 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 = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
 # Disable unsupported hardware
 RGBLIGHT_SUPPORTED = no
 AUDIO_SUPPORTED = no
diff --git a/keyboards/elephant42/info.json b/keyboards/elephant42/keyboard.json
similarity index 95%
rename from keyboards/elephant42/info.json
rename to keyboards/elephant42/keyboard.json
index eb53fda96d..e71f143813 100644
--- a/keyboards/elephant42/info.json
+++ b/keyboards/elephant42/keyboard.json
@@ -54,6 +54,16 @@
     },
     "processor": "atmega32u4",
     "bootloader": "caterina",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "rgb_matrix": true,
+        "oled": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/elephant42/rules.mk b/keyboards/elephant42/rules.mk
deleted file mode 100644
index 9091c74171..0000000000
--- a/keyboards/elephant42/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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
-RGB_MATRIX_ENABLE = yes
-AUDIO_ENABLE = no           # Audio output
-OLED_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/emery65/info.json b/keyboards/emery65/info.json
index 74d06b52ad..c80bcf8042 100644
--- a/keyboards/emery65/info.json
+++ b/keyboards/emery65/info.json
@@ -19,6 +19,12 @@
     },
     "processor": "STM32F072",
     "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/emery65/rules.mk b/keyboards/emery65/rules.mk
index 7c0709f41e..0ab54aaaf7 100644
--- a/keyboards/emery65/rules.mk
+++ b/keyboards/emery65/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 = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/era/linx3/n86/info.json b/keyboards/era/linx3/n86/keyboard.json
similarity index 100%
rename from keyboards/era/linx3/n86/info.json
rename to keyboards/era/linx3/n86/keyboard.json
diff --git a/keyboards/era/linx3/n86/rules.mk b/keyboards/era/linx3/n86/rules.mk
deleted file mode 100644
index 7ff128fa69..0000000000
--- a/keyboards/era/linx3/n86/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-# This file intentionally left blank
\ No newline at end of file
diff --git a/keyboards/era/linx3/n8x/info.json b/keyboards/era/linx3/n8x/keyboard.json
similarity index 100%
rename from keyboards/era/linx3/n8x/info.json
rename to keyboards/era/linx3/n8x/keyboard.json
diff --git a/keyboards/era/linx3/n8x/rules.mk b/keyboards/era/linx3/n8x/rules.mk
deleted file mode 100644
index 7ff128fa69..0000000000
--- a/keyboards/era/linx3/n8x/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-# This file intentionally left blank
\ No newline at end of file
diff --git a/keyboards/ergodox_ez/glow/info.json b/keyboards/ergodox_ez/glow/info.json
deleted file mode 100644
index dcbb1999ca..0000000000
--- a/keyboards/ergodox_ez/glow/info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "keyboard_name": "ErgoDox EZ Glow",
-    "usb": {
-        "pid": "0x4976"
-    }
-}
diff --git a/keyboards/ergodox_ez/glow/keyboard.json b/keyboards/ergodox_ez/glow/keyboard.json
new file mode 100644
index 0000000000..43f0ee0b49
--- /dev/null
+++ b/keyboards/ergodox_ez/glow/keyboard.json
@@ -0,0 +1,13 @@
+{
+    "keyboard_name": "ErgoDox EZ Glow",
+    "usb": {
+        "pid": "0x4976"
+    },
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    }
+}
diff --git a/keyboards/ergodox_ez/glow/rules.mk b/keyboards/ergodox_ez/glow/rules.mk
deleted file mode 100644
index aad92997d0..0000000000
--- a/keyboards/ergodox_ez/glow/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index 68f785f3cc..187d9dd8e2 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -3,20 +3,7 @@
 # details), include the following define:
 # OPT_DEFS += -DLEFT_LEDS
 
-# 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
 CUSTOM_MATRIX    = lite # Custom matrix file for the ErgoDox EZ
-NKRO_ENABLE      = yes           # Enable N-Key Rollover
-UNICODE_ENABLE   = no  # Unicode
-SWAP_HANDS_ENABLE= no   # Allow swapping hands of keyboard
-
-RGB_MATRIX_ENABLE = no # enable later
 
 # project specific files
 SRC += matrix.c
diff --git a/keyboards/ergodox_ez/shine/info.json b/keyboards/ergodox_ez/shine/info.json
index 181ac52e6c..bc0f218d7e 100644
--- a/keyboards/ergodox_ez/shine/info.json
+++ b/keyboards/ergodox_ez/shine/info.json
@@ -5,5 +5,12 @@
     },
     "rgblight": {
         "driver": "custom"
+    },
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgblight": true
     }
 }
diff --git a/keyboards/ergodox_ez/shine/rules.mk b/keyboards/ergodox_ez/shine/rules.mk
index 4ab494d1aa..827f58bd6a 100644
--- a/keyboards/ergodox_ez/shine/rules.mk
+++ b/keyboards/ergodox_ez/shine/rules.mk
@@ -1,3 +1,2 @@
-RGBLIGHT_ENABLE = yes
 WS2812_DRIVER_REQUIRED = yes
 SRC += rgblight_custom.c
diff --git a/keyboards/ergodox_stm32/info.json b/keyboards/ergodox_stm32/info.json
index 305adc9e12..24e90ad7d7 100644
--- a/keyboards/ergodox_stm32/info.json
+++ b/keyboards/ergodox_stm32/info.json
@@ -8,6 +8,13 @@
         "pid": "0x1308",
         "device_version": "1.0.1"
     },
+    "features": {
+        "bootmagic": false,
+        "mousekey": false,
+        "extrakey": true,
+        "nkro": true,
+        "unicode": true
+    },
 "layouts": {
         "LAYOUT_ergodox": {
             "layout": [
diff --git a/keyboards/ergodox_stm32/rules.mk b/keyboards/ergodox_stm32/rules.mk
index 5481eef1a2..21b474509d 100644
--- a/keyboards/ergodox_stm32/rules.mk
+++ b/keyboards/ergodox_stm32/rules.mk
@@ -6,14 +6,7 @@ BOARD = ST_NUCLEO64_F103RB
 # Bootloader selection
 BOOTLOADER = custom
 
-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 = yes           # Enable N-Key Rollover
-CUSTOM_MATRIX = yes # Custom matrix file
-UNICODE_ENABLE   = yes # Unicode
+CUSTOM_MATRIX = yes
 
 SRC += matrix.c
 I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/ergoslab/rev1/keyboard.json b/keyboards/ergoslab/rev1/keyboard.json
index 82e4b41b6d..ef40c1d960 100644
--- a/keyboards/ergoslab/rev1/keyboard.json
+++ b/keyboards/ergoslab/rev1/keyboard.json
@@ -25,6 +25,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "caterina",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "command": true,
+    "rgblight": true
+  },
   "layout_aliases": {
     "LAYOUT_ergoslab": "LAYOUT"
   },
diff --git a/keyboards/ergoslab/rules.mk b/keyboards/ergoslab/rules.mk
index 5255b41b06..8eb40c77d5 100644
--- a/keyboards/ergoslab/rules.mk
+++ b/keyboards/ergoslab/rules.mk
@@ -1,14 +1 @@
-# 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 = 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 = yes       # Enable WS2812 RGB underlight.
-
 DEFAULT_FOLDER = ergoslab/rev1
diff --git a/keyboards/ergotravel/rev1/info.json b/keyboards/ergotravel/rev1/keyboard.json
similarity index 96%
rename from keyboards/ergotravel/rev1/info.json
rename to keyboards/ergotravel/rev1/keyboard.json
index 43d3d01a92..14c645d2f0 100644
--- a/keyboards/ergotravel/rev1/info.json
+++ b/keyboards/ergotravel/rev1/keyboard.json
@@ -25,6 +25,13 @@
   },
   "bootloader": "caterina",
   "processor": "atmega32u4",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "command": true,
+    "rgblight": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
diff --git a/keyboards/ergotravel/rev1/rules.mk b/keyboards/ergotravel/rev1/rules.mk
deleted file mode 100644
index 7b30c0beff..0000000000
--- a/keyboards/ergotravel/rev1/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BACKLIGHT_ENABLE = no
diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk
index f52203f705..3f30277bb5 100644
--- a/keyboards/ergotravel/rules.mk
+++ b/keyboards/ergotravel/rules.mk
@@ -1,14 +1 @@
-# 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 = yes        # Commands for debug and configuration
-NKRO_ENABLE = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight. 
-
 DEFAULT_FOLDER = ergotravel/rev1
diff --git a/keyboards/ericrlau/numdiscipline/rev1/info.json b/keyboards/ericrlau/numdiscipline/rev1/info.json
index 36a39c1abe..6fd9c377f6 100644
--- a/keyboards/ericrlau/numdiscipline/rev1/info.json
+++ b/keyboards/ericrlau/numdiscipline/rev1/info.json
@@ -16,6 +16,11 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [
diff --git a/keyboards/ericrlau/numdiscipline/rev1/rules.mk b/keyboards/ericrlau/numdiscipline/rev1/rules.mk
index 18550f0a64..c2ee0bc86f 100644
--- a/keyboards/ericrlau/numdiscipline/rev1/rules.mk
+++ b/keyboards/ericrlau/numdiscipline/rev1/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/evyd13/atom47/rev2/info.json b/keyboards/evyd13/atom47/rev2/keyboard.json
similarity index 96%
rename from keyboards/evyd13/atom47/rev2/info.json
rename to keyboards/evyd13/atom47/rev2/keyboard.json
index 8c5720d0c4..62927b70a3 100644
--- a/keyboards/evyd13/atom47/rev2/info.json
+++ b/keyboards/evyd13/atom47/rev2/keyboard.json
@@ -34,6 +34,12 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "backlight": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_split_space"
     },
diff --git a/keyboards/evyd13/atom47/rev2/rules.mk b/keyboards/evyd13/atom47/rev2/rules.mk
deleted file mode 100644
index 104711e420..0000000000
--- a/keyboards/evyd13/atom47/rev2/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Build Options
-RGBLIGHT_ENABLE = no
-BACKLIGHT_ENABLE = yes
diff --git a/keyboards/evyd13/atom47/rev3/info.json b/keyboards/evyd13/atom47/rev3/keyboard.json
similarity index 98%
rename from keyboards/evyd13/atom47/rev3/info.json
rename to keyboards/evyd13/atom47/rev3/keyboard.json
index fc4046d3fc..009c3ef534 100644
--- a/keyboards/evyd13/atom47/rev3/info.json
+++ b/keyboards/evyd13/atom47/rev3/keyboard.json
@@ -47,6 +47,12 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "backlight": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_split_space"
     },
diff --git a/keyboards/evyd13/atom47/rev3/rules.mk b/keyboards/evyd13/atom47/rev3/rules.mk
deleted file mode 100644
index 54a2685bf6..0000000000
--- a/keyboards/evyd13/atom47/rev3/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BACKLIGHT_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/evyd13/atom47/rev4/info.json b/keyboards/evyd13/atom47/rev4/keyboard.json
similarity index 97%
rename from keyboards/evyd13/atom47/rev4/info.json
rename to keyboards/evyd13/atom47/rev4/keyboard.json
index b2b4bf9ef2..cea416e1a6 100644
--- a/keyboards/evyd13/atom47/rev4/info.json
+++ b/keyboards/evyd13/atom47/rev4/keyboard.json
@@ -29,6 +29,12 @@
     },
     "processor": "atmega32u2",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "encoder": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_split_space"
     },
diff --git a/keyboards/evyd13/atom47/rev4/rules.mk b/keyboards/evyd13/atom47/rev4/rules.mk
deleted file mode 100644
index 1eb7c8bd08..0000000000
--- a/keyboards/evyd13/atom47/rev4/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Build Options
-ENCODER_ENABLE = yes
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/evyd13/atom47/rev5/info.json b/keyboards/evyd13/atom47/rev5/keyboard.json
similarity index 97%
rename from keyboards/evyd13/atom47/rev5/info.json
rename to keyboards/evyd13/atom47/rev5/keyboard.json
index e82a7797de..c002dcb18c 100644
--- a/keyboards/evyd13/atom47/rev5/info.json
+++ b/keyboards/evyd13/atom47/rev5/keyboard.json
@@ -49,6 +49,12 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "rgb_matrix": true
+    },
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_split_space"
     },
diff --git a/keyboards/evyd13/atom47/rev5/rules.mk b/keyboards/evyd13/atom47/rev5/rules.mk
deleted file mode 100644
index aad92997d0..0000000000
--- a/keyboards/evyd13/atom47/rev5/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/evyd13/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk
index ab8264de7c..9d5b753077 100644
--- a/keyboards/evyd13/atom47/rules.mk
+++ b/keyboards/evyd13/atom47/rules.mk
@@ -1,14 +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 = no            # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
 DEFAULT_FOLDER = evyd13/atom47/rev4
diff --git a/keyboards/evyd13/eon40/info.json b/keyboards/evyd13/eon40/info.json
index ce989e1d2a..59511f117c 100644
--- a/keyboards/evyd13/eon40/info.json
+++ b/keyboards/evyd13/eon40/info.json
@@ -26,6 +26,14 @@
   },
   "processor": "atmega32u4",
   "bootloader": "qmk-dfu",
+  "features": {
+    "bootmagic": true,
+    "mousekey": false,
+    "extrakey": true,
+    "console": true,
+    "command": true,
+    "encoder": true
+  },
   "community_layouts": ["ortho_4x12", "planck_mit"],
   "layouts": {
     "LAYOUT_ortho_4x12": {
diff --git a/keyboards/evyd13/eon40/rules.mk b/keyboards/evyd13/eon40/rules.mk
index ece680a57a..1605120646 100644
--- a/keyboards/evyd13/eon40/rules.mk
+++ b/keyboards/evyd13/eon40/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 = 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
-ENCODER_ENABLE = yes
-
 # Disable unsupported hardware
 RGBLIGHT_SUPPORTED = no
 AUDIO_SUPPORTED = no
diff --git a/keyboards/evyd13/nt660/info.json b/keyboards/evyd13/nt660/info.json
index c222aba700..ea51efaa30 100644
--- a/keyboards/evyd13/nt660/info.json
+++ b/keyboards/evyd13/nt660/info.json
@@ -23,6 +23,11 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "community_layouts": ["66_ansi", "66_iso"],
     "layouts": {
         "LAYOUT_all": {
diff --git a/keyboards/evyd13/nt660/rules.mk b/keyboards/evyd13/nt660/rules.mk
index f8c29ddc98..1605120646 100644
--- a/keyboards/evyd13/nt660/rules.mk
+++ b/keyboards/evyd13/nt660/rules.mk
@@ -1,16 +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 = 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
-
 # Disable unsupported hardware
 RGBLIGHT_SUPPORTED = no
 AUDIO_SUPPORTED = no
diff --git a/keyboards/evyd13/pockettype/info.json b/keyboards/evyd13/pockettype/info.json
index eda670af11..bcca3dc936 100644
--- a/keyboards/evyd13/pockettype/info.json
+++ b/keyboards/evyd13/pockettype/info.json
@@ -15,6 +15,11 @@
   "diode_direction": "COL2ROW",
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": true,
+    "mousekey": false,
+    "extrakey": true
+  },
   "community_layouts": ["ortho_4x12"],
   "layouts": {
     "LAYOUT_ortho_4x12": {
diff --git a/keyboards/evyd13/pockettype/rules.mk b/keyboards/evyd13/pockettype/rules.mk
index f8c29ddc98..1605120646 100644
--- a/keyboards/evyd13/pockettype/rules.mk
+++ b/keyboards/evyd13/pockettype/rules.mk
@@ -1,16 +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 = 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
-
 # Disable unsupported hardware
 RGBLIGHT_SUPPORTED = no
 AUDIO_SUPPORTED = no
diff --git a/keyboards/evyd13/wasdat_code/info.json b/keyboards/evyd13/wasdat_code/info.json
index 9fb14283ae..8c1bb52b6b 100644
--- a/keyboards/evyd13/wasdat_code/info.json
+++ b/keyboards/evyd13/wasdat_code/info.json
@@ -32,6 +32,13 @@
     },
     "processor": "atmega32u4",
     "bootloader": "qmk-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "nkro": true,
+        "backlight": true
+    },
     "community_layouts": ["fullsize_ansi", "fullsize_iso", "tkl_ansi", "tkl_iso"],
     "layout_aliases": {
         "LAYOUT_all": "LAYOUT_fullsize_iso"
diff --git a/keyboards/evyd13/wasdat_code/rules.mk b/keyboards/evyd13/wasdat_code/rules.mk
index 00967d1847..6beea3e392 100644
--- a/keyboards/evyd13/wasdat_code/rules.mk
+++ b/keyboards/evyd13/wasdat_code/rules.mk
@@ -1,16 +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 = no         # 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
-
 CUSTOM_MATRIX = lite
 VPATH += drivers/gpio
 SRC += matrix.c sn74x138.c
diff --git a/keyboards/exclusive/e85/hotswap/keyboard.json b/keyboards/exclusive/e85/hotswap/keyboard.json
index 779a717ec5..c64509496a 100644
--- a/keyboards/exclusive/e85/hotswap/keyboard.json
+++ b/keyboards/exclusive/e85/hotswap/keyboard.json
@@ -41,6 +41,17 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "rgblight": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT_ansi_standard": {
             "layout": [
diff --git a/keyboards/exclusive/e85/rules.mk b/keyboards/exclusive/e85/rules.mk
index 4251159d94..8eef46d0ab 100644
--- a/keyboards/exclusive/e85/rules.mk
+++ b/keyboards/exclusive/e85/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 = 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 = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-LTO_ENABLE = yes
-
 DEFAULT_FOLDER = exclusive/e85/hotswap
diff --git a/keyboards/exclusive/e85/soldered/keyboard.json b/keyboards/exclusive/e85/soldered/keyboard.json
index d34440389a..5f7458e851 100644
--- a/keyboards/exclusive/e85/soldered/keyboard.json
+++ b/keyboards/exclusive/e85/soldered/keyboard.json
@@ -41,6 +41,17 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "command": true,
+        "rgblight": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT_all": {
             "layout": [