M keyboards/cannonkeys/aella/info.json => keyboards/cannonkeys/aella/info.json +8 -0
  
@@ 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": [
 
M keyboards/cannonkeys/aella/rules.mk => keyboards/cannonkeys/aella/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/an_c/info.json => keyboards/cannonkeys/an_c/info.json +10 -0
  
@@ 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": {
 
M keyboards/cannonkeys/an_c/rules.mk => keyboards/cannonkeys/an_c/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/balance/info.json => keyboards/cannonkeys/balance/info.json +9 -0
  
@@ 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": [
 
M keyboards/cannonkeys/balance/rules.mk => keyboards/cannonkeys/balance/rules.mk +0 -15
  
@@ 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
-
 
M keyboards/cannonkeys/brutalv2_65/info.json => keyboards/cannonkeys/brutalv2_65/info.json +8 -0
  
@@ 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",
 
M keyboards/cannonkeys/brutalv2_65/rules.mk => keyboards/cannonkeys/brutalv2_65/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/cloudline/info.json => keyboards/cannonkeys/cloudline/info.json +10 -0
  
@@ 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",
 
M keyboards/cannonkeys/cloudline/rules.mk => keyboards/cannonkeys/cloudline/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/crin/info.json => keyboards/cannonkeys/crin/info.json +9 -0
  
@@ 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"
     },
 
M keyboards/cannonkeys/crin/rules.mk => keyboards/cannonkeys/crin/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/db60/info.json => keyboards/cannonkeys/db60/info.json +11 -1
  
@@ 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
+    }
 }
 
M keyboards/cannonkeys/db60/rules.mk => keyboards/cannonkeys/db60/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/devastatingtkl/info.json => keyboards/cannonkeys/devastatingtkl/info.json +10 -0
  
@@ 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",
 
M keyboards/cannonkeys/devastatingtkl/rules.mk => keyboards/cannonkeys/devastatingtkl/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/gentoo/info.json => keyboards/cannonkeys/gentoo/info.json +8 -0
  
@@ 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",
 
M keyboards/cannonkeys/gentoo/rules.mk => keyboards/cannonkeys/gentoo/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/gentoo_hs/info.json => keyboards/cannonkeys/gentoo_hs/info.json +8 -0
  
@@ 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"
     },
 
M keyboards/cannonkeys/gentoo_hs/rules.mk => keyboards/cannonkeys/gentoo_hs/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/instant60/info.json => keyboards/cannonkeys/instant60/info.json +10 -0
  
@@ 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": {
 
M keyboards/cannonkeys/instant60/rules.mk => keyboards/cannonkeys/instant60/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/instant65/info.json => keyboards/cannonkeys/instant65/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/instant65/rules.mk => keyboards/cannonkeys/instant65/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/malicious_ergo/info.json => keyboards/cannonkeys/malicious_ergo/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/malicious_ergo/rules.mk => keyboards/cannonkeys/malicious_ergo/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/obliterated75/info.json => keyboards/cannonkeys/obliterated75/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/obliterated75/rules.mk => keyboards/cannonkeys/obliterated75/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/onyx/info.json => keyboards/cannonkeys/onyx/info.json +9 -0
  
@@ 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": [
 
M keyboards/cannonkeys/onyx/rules.mk => keyboards/cannonkeys/onyx/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/rekt1800/info.json => keyboards/cannonkeys/rekt1800/info.json +9 -0
  
@@ 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": [
 
M keyboards/cannonkeys/rekt1800/rules.mk => keyboards/cannonkeys/rekt1800/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/sagittarius/info.json => keyboards/cannonkeys/sagittarius/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/sagittarius/rules.mk => keyboards/cannonkeys/sagittarius/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/savage65/info.json => keyboards/cannonkeys/savage65/info.json +10 -0
  
@@ 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": {
 
M keyboards/cannonkeys/savage65/rules.mk => keyboards/cannonkeys/savage65/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/tmov2/info.json => keyboards/cannonkeys/tmov2/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/tmov2/rules.mk => keyboards/cannonkeys/tmov2/rules.mk +0 -13
  
@@ 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
-
 
M keyboards/cannonkeys/tsukuyomi/info.json => keyboards/cannonkeys/tsukuyomi/info.json +10 -0
  
@@ 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": [
 
M keyboards/cannonkeys/tsukuyomi/rules.mk => keyboards/cannonkeys/tsukuyomi/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/cannonkeys/vicious40/info.json => keyboards/cannonkeys/vicious40/info.json +9 -0
  
@@ 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": [
 
M keyboards/cannonkeys/vicious40/rules.mk => keyboards/cannonkeys/vicious40/rules.mk +0 -14
  
@@ 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
-
 
M keyboards/centromere/info.json => keyboards/centromere/info.json +8 -0
  
@@ 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"
 
M keyboards/centromere/rules.mk => keyboards/centromere/rules.mk +0 -13
  
@@ 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
 
M keyboards/checkerboards/phoenix45_ortho/info.json => keyboards/checkerboards/phoenix45_ortho/info.json +9 -0
  
@@ 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": [
 
M keyboards/checkerboards/phoenix45_ortho/rules.mk => keyboards/checkerboards/phoenix45_ortho/rules.mk +0 -14
  
@@ 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
 
M keyboards/checkerboards/quark/info.json => keyboards/checkerboards/quark/info.json +10 -0
  
@@ 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": {
 
M keyboards/checkerboards/quark/rules.mk => keyboards/checkerboards/quark/rules.mk +0 -16
  
@@ 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
 
M keyboards/checkerboards/quark_squared/info.json => keyboards/checkerboards/quark_squared/info.json +10 -0
  
@@ 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": [
 
M keyboards/checkerboards/quark_squared/rules.mk => keyboards/checkerboards/quark_squared/rules.mk +0 -14
  
@@ 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
 
R keyboards/checkerboards/snop60/info.json => keyboards/checkerboards/snop60/keyboard.json +13 -0
  
@@ 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"
 
D keyboards/checkerboards/snop60/rules.mk => keyboards/checkerboards/snop60/rules.mk +0 -13
  
@@ 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
 
R keyboards/chlx/str_merro60/info.json => keyboards/chlx/str_merro60/keyboard.json +8 -0
  
@@ 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": [
 
D keyboards/chlx/str_merro60/rules.mk => keyboards/chlx/str_merro60/rules.mk +0 -14
  
@@ 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
 
R keyboards/cipulot/kawayo/info.json => keyboards/cipulot/kawayo/keyboard.json +10 -1
  
@@ 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"
     },
 
D keyboards/cipulot/kawayo/rules.mk => keyboards/cipulot/kawayo/rules.mk +0 -14
  
@@ 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
 
R keyboards/clueboard/66_hotswap/prototype/info.json => keyboards/clueboard/66_hotswap/prototype/keyboard.json +3 -0
  
@@ 16,6 16,9 @@
     "nkro": true,
     "rgblight": true
   },
+  "build": {
+    "lto": true
+  },
   "indicators": {
     "caps_lock": "B4"
   },
 
D keyboards/clueboard/66_hotswap/prototype/rules.mk => keyboards/clueboard/66_hotswap/prototype/rules.mk +0 -1
  
@@ 1,1 0,0 @@
-LTO_ENABLE = yes
 
R keyboards/coarse/ixora/info.json => keyboards/coarse/ixora/keyboard.json +6 -0
  
@@ 20,6 20,12 @@
     },
     "processor": "STM32F042",
     "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "mousekey": true,
+        "extrakey": true,
+        "nkro": true
+    },
     "debounce": 0,
     "layouts": {
         "LAYOUT_full": {
 
D keyboards/coarse/ixora/rules.mk => keyboards/coarse/ixora/rules.mk +0 -10
  
@@ 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
 
R keyboards/coarse/vinta/info.json => keyboards/coarse/vinta/keyboard.json +6 -0
  
@@ 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": {
 
D keyboards/coarse/vinta/rules.mk => keyboards/coarse/vinta/rules.mk +0 -10
  
@@ 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
 
M keyboards/controllerworks/city42/info.json => keyboards/controllerworks/city42/info.json +3 -2
  
@@ 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
+}
 
M keyboards/controllerworks/city42/rules.mk => keyboards/controllerworks/city42/rules.mk +1 -2
  
@@ 1,2 1,1 @@
-POINTING_DEVICE_ENABLE = yes
-POINTING_DEVICE_DRIVER = cirque_pinnacle_spi>
\ No newline at end of file
+POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
 
M keyboards/converter/adb_usb/info.json => keyboards/converter/adb_usb/info.json +5 -0
  
@@ 8,6 8,11 @@
     "pid": "0x0ADB",
     "device_version": "1.0.1"
   },
+  "features": {
+    "bootmagic": false,
+    "mousekey": false,
+    "extrakey": true
+  },
   "layouts": {
     "LAYOUT_ext_ansi": {
       "layout": [
 
M keyboards/converter/adb_usb/rules.mk => keyboards/converter/adb_usb/rules.mk +0 -12
  
@@ 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
 
M keyboards/converter/hp_46010a/info.json => keyboards/converter/hp_46010a/info.json +7 -0
  
@@ 10,6 10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "halfkay",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "console": true,
+    "nkro": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
 
M keyboards/converter/hp_46010a/rules.mk => keyboards/converter/hp_46010a/rules.mk +0 -13
  
@@ 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
 
 
M keyboards/converter/ibm_terminal/info.json => keyboards/converter/ibm_terminal/info.json +7 -0
  
@@ 10,6 10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "nkro": true,
+    "ps2": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
 
M keyboards/converter/ibm_terminal/rules.mk => keyboards/converter/ibm_terminal/rules.mk +0 -13
  
@@ 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
 
 
M keyboards/converter/m0110_usb/info.json => keyboards/converter/m0110_usb/info.json +7 -0
  
@@ 10,6 10,13 @@
   },
   "processor": "atmega32u4",
   "bootloader": "caterina",
+  "features": {
+    "bootmagic": false,
+    "mousekey": false,
+    "console": true,
+    "extrakey": true,
+    "usb_hid": true
+  },
   "layouts": {
     "LAYOUT_ansi": {
       "layout": [
 
M keyboards/converter/m0110_usb/rules.mk => keyboards/converter/m0110_usb/rules.mk +0 -11
  
@@ 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
 
M keyboards/converter/palm_usb/info.json => keyboards/converter/palm_usb/info.json +8 -1
  
@@ 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
+    }
 }
 
M keyboards/converter/palm_usb/rules.mk => keyboards/converter/palm_usb/rules.mk +0 -12
  
@@ 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
 
 
R keyboards/converter/periboard_512/info.json => keyboards/converter/periboard_512/keyboard.json +5 -0
  
@@ 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"],
 
D keyboards/converter/periboard_512/rules.mk => keyboards/converter/periboard_512/rules.mk +0 -12
  
@@ 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
 
M keyboards/converter/siemens_tastatur/info.json => keyboards/converter/siemens_tastatur/info.json +9 -0
  
@@ 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": [
 
M keyboards/converter/siemens_tastatur/rules.mk => keyboards/converter/siemens_tastatur/rules.mk +1 -16
  
@@ 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
 
M keyboards/converter/sun_usb/info.json => keyboards/converter/sun_usb/info.json +9 -1
  
@@ 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
+    }
 }
 
M keyboards/converter/sun_usb/rules.mk => keyboards/converter/sun_usb/rules.mk +0 -12
  
@@ 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
 
 
M keyboards/converter/xt_usb/info.json => keyboards/converter/xt_usb/info.json +8 -0
  
@@ 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": [
 
M keyboards/converter/xt_usb/rules.mk => keyboards/converter/xt_usb/rules.mk +0 -12
  
@@ 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
 
M keyboards/coseyfannitutti/discipline/info.json => keyboards/coseyfannitutti/discipline/info.json +5 -0
  
@@ 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",
 
M keyboards/coseyfannitutti/discipline/rules.mk => keyboards/coseyfannitutti/discipline/rules.mk +0 -13
  
@@ 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
 
M keyboards/coseyfannitutti/mysterium/info.json => keyboards/coseyfannitutti/mysterium/info.json +5 -0
  
@@ 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": {
 
M keyboards/coseyfannitutti/mysterium/rules.mk => keyboards/coseyfannitutti/mysterium/rules.mk +0 -13
  
@@ 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
 
M keyboards/cozykeys/speedo/v3/info.json => keyboards/cozykeys/speedo/v3/info.json +6 -0
  
@@ 36,6 36,12 @@
   "diode_direction": "COL2ROW",
   "processor": "atmega32u4",
   "bootloader": "atmel-dfu",
+  "features": {
+    "bootmagic": false,
+    "mousekey": true,
+    "extrakey": true,
+    "rgblight": true
+  },
   "layouts": {
     "LAYOUT": {
       "layout": [
 
M keyboards/cozykeys/speedo/v3/rules.mk => keyboards/cozykeys/speedo/v3/rules.mk +0 -13
  
@@ 1,14 1,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
 
M keyboards/crimsonkeyboards/resume1800/info.json => keyboards/crimsonkeyboards/resume1800/info.json +5 -0
  
@@ 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"
 
M keyboards/crimsonkeyboards/resume1800/rules.mk => keyboards/crimsonkeyboards/resume1800/rules.mk +0 -13
  
@@ 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
 
M keyboards/crypt_macro/info.json => keyboards/crypt_macro/info.json +7 -0
  
@@ 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"],
 
M keyboards/crypt_macro/rules.mk => keyboards/crypt_macro/rules.mk +0 -13
  
@@ 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
 
M keyboards/custommk/genesis/rev1/keyboard.json => keyboards/custommk/genesis/rev1/keyboard.json +8 -0
  
@@ 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": [
 
R keyboards/custommk/genesis/rev2/info.json => keyboards/custommk/genesis/rev2/keyboard.json +8 -0
  
@@ 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": [
 
D keyboards/custommk/genesis/rev2/rules.mk => keyboards/custommk/genesis/rev2/rules.mk +0 -13
  
@@ 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
 
M keyboards/custommk/genesis/rules.mk => keyboards/custommk/genesis/rules.mk +0 -14
  
@@ 1,15 1,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