From 5936a96620fb8346114bfbccc4edf2ea74c51cb3 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Sat, 20 Apr 2024 01:19:11 -0700
Subject: [PATCH] Data-Driven Keyboard Conversions: K, Part 2 (#23562)

---
 keyboards/kb58/{info.json => keyboard.json}       |  5 +++++
 keyboards/kb58/rules.mk                           | 12 ------------
 keyboards/kb_elmo/aek2_usb/info.json              |  5 +++++
 keyboards/kb_elmo/aek2_usb/rules.mk               | 13 -------------
 keyboards/kb_elmo/elmopad/info.json               |  5 +++++
 keyboards/kb_elmo/elmopad/rules.mk                | 13 -------------
 keyboards/kb_elmo/isolation/info.json             |  6 ++++++
 keyboards/kb_elmo/isolation/rules.mk              | 13 -------------
 keyboards/kb_elmo/m0110a_usb/info.json            |  5 +++++
 keyboards/kb_elmo/m0110a_usb/rules.mk             | 13 -------------
 keyboards/kb_elmo/m0116_usb/info.json             |  5 +++++
 keyboards/kb_elmo/m0116_usb/rules.mk              | 13 -------------
 keyboards/kb_elmo/sesame/info.json                |  5 +++++
 keyboards/kb_elmo/sesame/rules.mk                 | 13 -------------
 keyboards/kb_elmo/twelvekey/info.json             |  6 ++++++
 keyboards/kb_elmo/twelvekey/rules.mk              | 13 -------------
 .../bella/rgb/{info.json => keyboard.json}        | 10 ++++++++++
 keyboards/kbdfans/bella/rgb/rules.mk              | 15 ---------------
 .../bella/rgb_iso/{info.json => keyboard.json}    | 10 ++++++++++
 keyboards/kbdfans/bella/rgb_iso/rules.mk          | 15 ---------------
 keyboards/kbdfans/jm60/info.json                  |  6 ++++++
 keyboards/kbdfans/jm60/rules.mk                   | 14 --------------
 keyboards/kbdfans/kbd4x/info.json                 |  9 +++++++++
 keyboards/kbdfans/kbd4x/rules.mk                  | 13 -------------
 keyboards/kbdfans/kbd67/mkiirgb/v3/info.json      | 10 ++++++++++
 keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk       | 15 ---------------
 keyboards/kbdfans/kbd67/mkiirgb_iso/info.json     |  7 +++++++
 keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk      | 14 --------------
 .../kbd75/rev1/{info.json => keyboard.json}       |  8 ++++++++
 keyboards/kbdfans/kbd75/rev1/rules.mk             | 12 ------------
 .../kbd75/rev2/{info.json => keyboard.json}       |  8 ++++++++
 keyboards/kbdfans/kbd75/rev2/rules.mk             | 12 ------------
 keyboards/kbdfans/niu_mini/info.json              |  9 +++++++++
 keyboards/kbdfans/niu_mini/rules.mk               | 13 -------------
 keyboards/kbdmania/kmac/info.json                 |  8 ++++++++
 keyboards/kbdmania/kmac/rules.mk                  | 11 -----------
 keyboards/kbdmania/kmac_pad/info.json             |  6 ++++++
 keyboards/kbdmania/kmac_pad/rules.mk              | 12 ------------
 38 files changed, 133 insertions(+), 249 deletions(-)
 rename keyboards/kb58/{info.json => keyboard.json} (97%)
 delete mode 100644 keyboards/kb58/rules.mk
 rename keyboards/kbdfans/bella/rgb/{info.json => keyboard.json} (97%)
 delete mode 100644 keyboards/kbdfans/bella/rgb/rules.mk
 rename keyboards/kbdfans/bella/rgb_iso/{info.json => keyboard.json} (97%)
 delete mode 100644 keyboards/kbdfans/bella/rgb_iso/rules.mk
 rename keyboards/kbdfans/kbd75/rev1/{info.json => keyboard.json} (99%)
 delete mode 100644 keyboards/kbdfans/kbd75/rev1/rules.mk
 rename keyboards/kbdfans/kbd75/rev2/{info.json => keyboard.json} (99%)
 delete mode 100644 keyboards/kbdfans/kbd75/rev2/rules.mk

diff --git a/keyboards/kb58/info.json b/keyboards/kb58/keyboard.json
similarity index 97%
rename from keyboards/kb58/info.json
rename to keyboards/kb58/keyboard.json
index 0e32ab834b..950bc51eaf 100644
--- a/keyboards/kb58/info.json
+++ b/keyboards/kb58/keyboard.json
@@ -25,6 +25,11 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": false,
+        "mousekey": false,
+        "extrakey": false
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kb58/rules.mk b/keyboards/kb58/rules.mk
deleted file mode 100644
index 164c05712b..0000000000
--- a/keyboards/kb58/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/kb_elmo/aek2_usb/info.json b/keyboards/kb_elmo/aek2_usb/info.json
index 884390278d..3ee3c521f7 100644
--- a/keyboards/kb_elmo/aek2_usb/info.json
+++ b/keyboards/kb_elmo/aek2_usb/info.json
@@ -23,6 +23,11 @@
     },
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kb_elmo/aek2_usb/rules.mk b/keyboards/kb_elmo/aek2_usb/rules.mk
index 31ac76281a..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/aek2_usb/rules.mk
+++ b/keyboards/kb_elmo/aek2_usb/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/kb_elmo/elmopad/info.json b/keyboards/kb_elmo/elmopad/info.json
index 600daf3099..584bd31d4e 100644
--- a/keyboards/kb_elmo/elmopad/info.json
+++ b/keyboards/kb_elmo/elmopad/info.json
@@ -15,6 +15,11 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega328p",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "community_layouts": ["numpad_6x4"],
     "layouts": {
         "LAYOUT_numpad_6x4": {
diff --git a/keyboards/kb_elmo/elmopad/rules.mk b/keyboards/kb_elmo/elmopad/rules.mk
index 31ac76281a..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/elmopad/rules.mk
+++ b/keyboards/kb_elmo/elmopad/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/kb_elmo/isolation/info.json b/keyboards/kb_elmo/isolation/info.json
index c381c62f70..e7a40a55e6 100644
--- a/keyboards/kb_elmo/isolation/info.json
+++ b/keyboards/kb_elmo/isolation/info.json
@@ -30,6 +30,12 @@
     },
     "processor": "atmega328p",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "rgblight": true
+    },
     "matrix_pins": {
         "direct": [
             ["B0"]
diff --git a/keyboards/kb_elmo/isolation/rules.mk b/keyboards/kb_elmo/isolation/rules.mk
index f1b708c074..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/isolation/rules.mk
+++ b/keyboards/kb_elmo/isolation/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 = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/kb_elmo/m0110a_usb/info.json b/keyboards/kb_elmo/m0110a_usb/info.json
index 419efe5be3..c106e35c30 100644
--- a/keyboards/kb_elmo/m0110a_usb/info.json
+++ b/keyboards/kb_elmo/m0110a_usb/info.json
@@ -15,6 +15,11 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kb_elmo/m0110a_usb/rules.mk b/keyboards/kb_elmo/m0110a_usb/rules.mk
index 31ac76281a..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/m0110a_usb/rules.mk
+++ b/keyboards/kb_elmo/m0110a_usb/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/kb_elmo/m0116_usb/info.json b/keyboards/kb_elmo/m0116_usb/info.json
index 436d42a973..7279dc3c86 100644
--- a/keyboards/kb_elmo/m0116_usb/info.json
+++ b/keyboards/kb_elmo/m0116_usb/info.json
@@ -18,6 +18,11 @@
     },
     "processor": "atmega32a",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kb_elmo/m0116_usb/rules.mk b/keyboards/kb_elmo/m0116_usb/rules.mk
index 31ac76281a..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/m0116_usb/rules.mk
+++ b/keyboards/kb_elmo/m0116_usb/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/kb_elmo/sesame/info.json b/keyboards/kb_elmo/sesame/info.json
index ef10a72599..c962ef556d 100644
--- a/keyboards/kb_elmo/sesame/info.json
+++ b/keyboards/kb_elmo/sesame/info.json
@@ -18,6 +18,11 @@
   },
   "processor": "atmega32a",
   "bootloader": "usbasploader",
+  "features": {
+    "bootmagic": true,
+    "mousekey": false,
+    "extrakey": true
+  },
   "community_layouts": ["alice", "alice_split_bs"],
   "layout_aliases": {
     "LAYOUT": "LAYOUT_alice",
diff --git a/keyboards/kb_elmo/sesame/rules.mk b/keyboards/kb_elmo/sesame/rules.mk
index 31ac76281a..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/sesame/rules.mk
+++ b/keyboards/kb_elmo/sesame/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/kb_elmo/twelvekey/info.json b/keyboards/kb_elmo/twelvekey/info.json
index 95091845e3..3d60c08114 100644
--- a/keyboards/kb_elmo/twelvekey/info.json
+++ b/keyboards/kb_elmo/twelvekey/info.json
@@ -20,6 +20,12 @@
     },
     "processor": "atmega328p",
     "bootloader": "usbasploader",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "backlight": true
+    },
     "layouts": {
         "LAYOUT_ortho_3x4": {
             "layout": [
diff --git a/keyboards/kb_elmo/twelvekey/rules.mk b/keyboards/kb_elmo/twelvekey/rules.mk
index 7d1ccce5cb..c2ee0bc86f 100644
--- a/keyboards/kb_elmo/twelvekey/rules.mk
+++ b/keyboards/kb_elmo/twelvekey/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 = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/kbdfans/bella/rgb/info.json b/keyboards/kbdfans/bella/rgb/keyboard.json
similarity index 97%
rename from keyboards/kbdfans/bella/rgb/info.json
rename to keyboards/kbdfans/bella/rgb/keyboard.json
index c6486e0b39..50310e3667 100644
--- a/keyboards/kbdfans/bella/rgb/info.json
+++ b/keyboards/kbdfans/bella/rgb/keyboard.json
@@ -66,6 +66,16 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kbdfans/bella/rgb/rules.mk b/keyboards/kbdfans/bella/rgb/rules.mk
deleted file mode 100644
index 3d0767ea6d..0000000000
--- a/keyboards/kbdfans/bella/rgb/rules.mk
+++ /dev/null
@@ -1,15 +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 = no           # Enable keyboard RGB underglow
-AUDIO_ENABLE = no              # Audio output
-RGB_MATRIX_ENABLE = yes
-
-LTO_ENABLE = yes
diff --git a/keyboards/kbdfans/bella/rgb_iso/info.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json
similarity index 97%
rename from keyboards/kbdfans/bella/rgb_iso/info.json
rename to keyboards/kbdfans/bella/rgb_iso/keyboard.json
index 17ca4333fd..20b00283ed 100644
--- a/keyboards/kbdfans/bella/rgb_iso/info.json
+++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json
@@ -66,6 +66,16 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/kbdfans/bella/rgb_iso/rules.mk b/keyboards/kbdfans/bella/rgb_iso/rules.mk
deleted file mode 100644
index 3d0767ea6d..0000000000
--- a/keyboards/kbdfans/bella/rgb_iso/rules.mk
+++ /dev/null
@@ -1,15 +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 = no           # Enable keyboard RGB underglow
-AUDIO_ENABLE = no              # Audio output
-RGB_MATRIX_ENABLE = yes
-
-LTO_ENABLE = yes
diff --git a/keyboards/kbdfans/jm60/info.json b/keyboards/kbdfans/jm60/info.json
index 496637383f..c30b43b18b 100644
--- a/keyboards/kbdfans/jm60/info.json
+++ b/keyboards/kbdfans/jm60/info.json
@@ -13,6 +13,12 @@
         "rows": ["B11", "B10", "B2", "B1", "B0"]
     },
     "diode_direction": "ROW2COL",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "nkro": true
+    },
     "community_layouts": ["60_ansi"],
     "layouts": {
         "LAYOUT_60_ansi": {
diff --git a/keyboards/kbdfans/jm60/rules.mk b/keyboards/kbdfans/jm60/rules.mk
index 5dbf13f5e7..0c31ad1eab 100644
--- a/keyboards/kbdfans/jm60/rules.mk
+++ b/keyboards/kbdfans/jm60/rules.mk
@@ -6,17 +6,3 @@ BOARD = ST_NUCLEO64_F103RB
 
 # Bootloader selection
 BOOTLOADER = custom
-
-# 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 = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
diff --git a/keyboards/kbdfans/kbd4x/info.json b/keyboards/kbdfans/kbd4x/info.json
index 44c9daceb7..a1dc8e3dd4 100644
--- a/keyboards/kbdfans/kbd4x/info.json
+++ b/keyboards/kbdfans/kbd4x/info.json
@@ -40,6 +40,15 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "command": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": ["ortho_4x12", "planck_mit"],
     "layouts": {
         "LAYOUT_planck_mit": {
diff --git a/keyboards/kbdfans/kbd4x/rules.mk b/keyboards/kbdfans/kbd4x/rules.mk
index 33020c98c4..271780b75e 100644
--- a/keyboards/kbdfans/kbd4x/rules.mk
+++ b/keyboards/kbdfans/kbd4x/rules.mk
@@ -1,15 +1,2 @@
-# 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 = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-
 # Disable unsupported hardware
 AUDIO_SUPPORTED = no
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
index 1fd3448de4..4a3beea9eb 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
@@ -49,6 +49,16 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "lufa-ms",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    },
+    "build": {
+        "lto": true
+    },
     "layouts": {
         "LAYOUT_65_ansi_blocker": {
             "layout": [
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk
index bbe22adb0c..13252d8169 100755
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk
@@ -1,16 +1 @@
 BOOTLOADER_SIZE = 6144
-
-# 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 = no          # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no           # Enable keyboard RGB underglow
-AUDIO_ENABLE = no              # Audio output
-RGB_MATRIX_ENABLE = yes        # Use RGB matrix
-LTO_ENABLE = yes
diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json
index 8bbfc9a150..b8e9fdaf1c 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/info.json
@@ -54,6 +54,13 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "lufa-ms",
+    "features": {
+        "bootmagic": true,
+        "mousekey": false,
+        "extrakey": true,
+        "nkro": true,
+        "rgb_matrix": true
+    },
     "community_layouts": ["65_iso_blocker"],
     "layouts": {
         "LAYOUT_65_iso_blocker": {
diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk
index 5cd6062134..13252d8169 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk
+++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/rules.mk
@@ -1,15 +1 @@
 BOOTLOADER_SIZE = 6144
-
-# 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 = no       # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
-RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/kbdfans/kbd75/rev1/info.json b/keyboards/kbdfans/kbd75/rev1/keyboard.json
similarity index 99%
rename from keyboards/kbdfans/kbd75/rev1/info.json
rename to keyboards/kbdfans/kbd75/rev1/keyboard.json
index efbfbe60dd..94f96988ff 100644
--- a/keyboards/kbdfans/kbd75/rev1/info.json
+++ b/keyboards/kbdfans/kbd75/rev1/keyboard.json
@@ -44,6 +44,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layout_aliases": {
         "LAYOUT_ansi_1u": "LAYOUT_75_ansi"
     },
diff --git a/keyboards/kbdfans/kbd75/rev1/rules.mk b/keyboards/kbdfans/kbd75/rev1/rules.mk
deleted file mode 100644
index 3d5cb57ad5..0000000000
--- a/keyboards/kbdfans/kbd75/rev1/rules.mk
+++ /dev/null
@@ -1,12 +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 = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/kbdfans/kbd75/rev2/info.json b/keyboards/kbdfans/kbd75/rev2/keyboard.json
similarity index 99%
rename from keyboards/kbdfans/kbd75/rev2/info.json
rename to keyboards/kbdfans/kbd75/rev2/keyboard.json
index 12a1737ead..9bfd69f7fd 100644
--- a/keyboards/kbdfans/kbd75/rev2/info.json
+++ b/keyboards/kbdfans/kbd75/rev2/keyboard.json
@@ -44,6 +44,14 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "layout_aliases": {
         "LAYOUT_ansi_1u": "LAYOUT_75_ansi"
     },
diff --git a/keyboards/kbdfans/kbd75/rev2/rules.mk b/keyboards/kbdfans/kbd75/rev2/rules.mk
deleted file mode 100644
index 3d5cb57ad5..0000000000
--- a/keyboards/kbdfans/kbd75/rev2/rules.mk
+++ /dev/null
@@ -1,12 +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 = yes      # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
-AUDIO_ENABLE = no           # Audio output
diff --git a/keyboards/kbdfans/niu_mini/info.json b/keyboards/kbdfans/niu_mini/info.json
index 32ecfd33c6..d4918e7713 100644
--- a/keyboards/kbdfans/niu_mini/info.json
+++ b/keyboards/kbdfans/niu_mini/info.json
@@ -39,6 +39,15 @@
     },
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "features": {
+        "bootmagic": false,
+        "mousekey": true,
+        "extrakey": true,
+        "console": true,
+        "nkro": true,
+        "backlight": true,
+        "rgblight": true
+    },
     "community_layouts": ["ortho_4x12", "planck_mit"],
     "layout_aliases": {
         "LAYOUT": "LAYOUT_ortho_4x12"
diff --git a/keyboards/kbdfans/niu_mini/rules.mk b/keyboards/kbdfans/niu_mini/rules.mk
index dfaed88540..4df55cd220 100644
--- a/keyboards/kbdfans/niu_mini/rules.mk
+++ b/keyboards/kbdfans/niu_mini/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 = yes      # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
-RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight.
-
 # Disable unsupported hardware
 AUDIO_SUPPORTED = no
 BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/kbdmania/kmac/info.json b/keyboards/kbdmania/kmac/info.json
index 0ec6f0b2a9..c372cb1fc8 100644
--- a/keyboards/kbdmania/kmac/info.json
+++ b/keyboards/kbdmania/kmac/info.json
@@ -17,6 +17,14 @@
   },
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": true,
+    "mousekey": true,
+    "extrakey": true,
+    "command": true,
+    "nkro": true,
+    "backlight": true
+  },
   "community_layouts": ["tkl_ansi"],
   "layouts": {
     "LAYOUT_tkl_ansi": {
diff --git a/keyboards/kbdmania/kmac/rules.mk b/keyboards/kbdmania/kmac/rules.mk
index d9aa87a7dc..b35b955f69 100644
--- a/keyboards/kbdmania/kmac/rules.mk
+++ b/keyboards/kbdmania/kmac/rules.mk
@@ -1,18 +1,7 @@
 # Processor frequency
 F_CPU = 8000000
 
-# 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
 CUSTOM_MATRIX = yes         # Custom matrix file
-NKRO_ENABLE = yes           # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-AUDIO_ENABLE = no           # Audio output
 
 # Project specific files
 SRC += matrix.c
diff --git a/keyboards/kbdmania/kmac_pad/info.json b/keyboards/kbdmania/kmac_pad/info.json
index f41da8a452..8dbb196f3e 100644
--- a/keyboards/kbdmania/kmac_pad/info.json
+++ b/keyboards/kbdmania/kmac_pad/info.json
@@ -9,6 +9,12 @@
   },
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": true,
+    "mousekey": true,
+    "extrakey": true,
+    "nkro": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
diff --git a/keyboards/kbdmania/kmac_pad/rules.mk b/keyboards/kbdmania/kmac_pad/rules.mk
index 1c42620aca..2ec2337384 100644
--- a/keyboards/kbdmania/kmac_pad/rules.mk
+++ b/keyboards/kbdmania/kmac_pad/rules.mk
@@ -1,18 +1,6 @@
 # Processor frequency
 F_CPU = 8000000
 
-# 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
 CUSTOM_MATRIX = lite        # Custom matrix file
 
 # Project specific files