~ruther/qmk_firmware

479d8de622674b6667295bda344145a69aa042bd — Ryan 2 years ago ce80a3a
Format DD mappings and schemas (#18924)

R data/mappings/defaults.json => data/mappings/defaults.hjson +0 -0
R data/mappings/info_config.json => data/mappings/info_config.hjson +12 -12
@@ 1,15 1,15 @@
# This file maps keys between `config.h` and `info.json`. It is used by QMK
# to correctly and consistently map back and forth between the two systems.
// This file maps keys between `config.h` and `info.json`. It is used by QMK
// to correctly and consistently map back and forth between the two systems.
{
    # Format:
    # <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
    # value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw"
    # to_json: Default `true`. Set to `false` to exclude this mapping from info.json
    # to_c: Default `true`. Set to `false` to exclude this mapping from config.h
    # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
    # deprecated: Default `false`. Set to `true` to turn on warning when a value exists
    # invalid: Default `false`. Set to `true` to generate errors when a value exists
    # replace_with: use with a key marked deprecated or invalid to designate a replacement
    // Format:
    // <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
    // value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw"
    // to_json: Default `true`. Set to `false` to exclude this mapping from info.json
    // to_c: Default `true`. Set to `false` to exclude this mapping from config.h
    // warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
    // deprecated: Default `false`. Set to `true` to turn on warning when a value exists
    // invalid: Default `false`. Set to `true` to generate errors when a value exists
    // replace_with: use with a key marked deprecated or invalid to designate a replacement
    "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
    "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
    "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},


@@ 118,7 118,7 @@
    "USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
    "USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},

    # Items we want flagged in lint
    // Items we want flagged in lint
    "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
    "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
    "DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},

R data/mappings/info_rules.json => data/mappings/info_rules.hjson +12 -12
@@ 1,15 1,15 @@
# This file maps keys between `rules.mk` and `info.json`. It is used by QMK
# to correctly and consistently map back and forth between the two systems.
// This file maps keys between `rules.mk` and `info.json`. It is used by QMK
// to correctly and consistently map back and forth between the two systems.
{
    # Format:
    # <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
    # value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping", "str", "raw"
    # to_json: Default `true`. Set to `false` to exclude this mapping from info.json
    # to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk
    # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
    # deprecated: Default `false`. Set to `true` to turn on warning when a value exists
    # invalid: Default `false`. Set to `true` to generate errors when a value exists
    # replace_with: use with a key marked deprecated or invalid to designate a replacement
    // Format:
    // <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
    // value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping", "str", "raw"
    // to_json: Default `true`. Set to `false` to exclude this mapping from info.json
    // to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk
    // warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
    // deprecated: Default `false`. Set to `true` to turn on warning when a value exists
    // invalid: Default `false`. Set to `true` to generate errors when a value exists
    // replace_with: use with a key marked deprecated or invalid to designate a replacement
    "BOARD": {"info_key": "board"},
    "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
    "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"},


@@ 37,7 37,7 @@
    "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
    "PS2_DRIVER": {"info_key": "ps2.driver"},

    # Items we want flagged in lint
    // Items we want flagged in lint
    "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
    "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
    "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}

A data/mappings/keyboard_aliases.hjson => data/mappings/keyboard_aliases.hjson +1252 -0
@@ 0,0 1,1252 @@
{
    // Format for each entry:
    // "<alias>": {
    //     "target": "<keyboard_folder>",
    //     "layouts": {
    //         "<layout_alias>": "<layout_target>"
    //     }
    // }
    //
    // Both target and layouts are optional.
    "2_milk": {
        "target": "spaceman/2_milk"
    },
    "absinthe": {
        "target": "keyhive/absinthe"
    },
    "aeboards/constellation": {
        "target": "aeboards/constellation/rev1"
    },
    "aeboards/ext65": {
        "target": "aeboards/ext65/rev1"
    },
    "ai03/equinox": {
        "target": "ai03/equinox/rev1"
    },
    "alice": {
        "target": "tgr/alice"
    },
    "amj40": {
        "target": "amjkeyboard/amj40"
    },
    "amj60": {
        "target": "amjkeyboard/amj60"
    },
    "amj96": {
        "target": "amjkeyboard/amj96"
    },
    "amjpad": {
        "target": "amjkeyboard/amjpad"
    },
    "angel64": {
        "target": "angel64/alpha"
    },
    "at101_blackheart": {
        "target": "viktus/at101_bh"
    },
    "at101_bh": {
        "target": "viktus/at101_bh"
    },
    "atom47/rev2": {
        "target": "maartenwut/atom47/rev2"
    },
    "atom47/rev3": {
        "target": "maartenwut/atom47/rev3"
    },
    "bakeneko60": {
        "target": "kkatano/bakeneko60"
    },
    "bakeneko65": {
        "target": "kkatano/bakeneko65/rev2"
    },
    "bakeneko80": {
        "target": "kkatano/bakeneko80"
    },
    "bear_face": {
        "target": "bear_face/v1"
    },
    "bm16a": {
        "target": "kprepublic/bm16a"
    },
    "bm16s": {
        "target": "kprepublic/bm16s"
    },
    "bm40hsrgb": {
        "target": "kprepublic/bm40hsrgb"
    },
    "bm43a": {
        "target": "kprepublic/bm43a"
    },
    "bm60poker": {
        "target": "kprepublic/bm60poker"
    },
    "bm60rgb": {
        "target": "kprepublic/bm60rgb"
    },
    "bm60rgb_iso": {
        "target": "kprepublic/bm60rgb_iso"
    },
    "bm68rgb": {
        "target": "kprepublic/bm68rgb"
    },
    "bpiphany/pegasushoof": {
        "target": "bpiphany/pegasushoof/2013"
    },
    "chavdai40": {
        "target": "chavdai40/rev1"
    },
    "candybar/lefty": {
        "target": "tkc/candybar/lefty"
    },
    "candybar/righty": {
        "target": "tkc/candybar/righty"
    },
    "canoe": {
        "target": "percent/canoe"
    },
    "clawsome/gamebuddy": {
        "target": "clawsome/gamebuddy/v1_0"
    },
    "cmm_studio/saka68": {
        "target": "cmm_studio/saka68/solder"
    },
    "cospad": {
        "target": "kprepublic/cospad"
    },
    "crkbd/rev1/legacy": {
        "target": "crkbd/rev1"
    },
    "crkbd/rev1/common": {
        "target": "crkbd/rev1"
    },
    "custommk/genesis": {
        "target": "custommk/genesis/rev1"
    },
    "daisy": {
        "target": "ktec/daisy"
    },
    "doro67/multi": {
        "layouts": {
            "LAYOUT_ansi": "LAYOUT_65_ansi_blocker"
        }
    },
    "doro67/regular": {
        "layouts": {
            "LAYOUT": "LAYOUT_65_ansi_blocker"
        }
    },
    "doro67/rgb": {
        "layouts": {
            "LAYOUT": "LAYOUT_65_ansi_blocker"
        }
    },
    "drakon": {
        "target": "jagdpietr/drakon"
    },
    "durgod/k320": {
        "target": "durgod/k3x0/k320"
    },
    "dztech/dz60rgb": {
        "target": "dztech/dz60rgb/v1"
    },
    "dztech/dz60rgb_ansi": {
        "target": "dztech/dz60rgb_ansi/v1"
    },
    "dztech/dz60rgb_wkl": {
        "target": "dztech/dz60rgb_wkl/v1"
    },
    "dztech/dz65rgb": {
        "target": "dztech/dz65rgb/v1"
    },
    "dztech/volcano660": {
        "target": "ilumkb/volcano660"
    },
    "eek": {
        "target": "eek/silk_down"
    },
    "ergodone": {
        "target": "ktec/ergodone"
    },
    "ergoinu": {
        "target": "dm9records/ergoinu"
    },
    "ergosaurus": {
        "target": "keyhive/ergosaurus"
    },
    "exclusive/e85": {
        "target": "exclusive/e85/hotswap"
    },
    "gh60": {
        "target": "gh60/revc"
    },
    "gmmk/pro": {
        "target": "gmmk/pro/rev1/ansi"
    },
    "gmmk/pro/ansi": {
        "target": "gmmk/pro/rev1/ansi"
    },
    "gmmk/pro/iso": {
        "target": "gmmk/pro/rev1/iso"
    },
    "handwired/ferris": {
        "target": "ferris/0_1"
    },
    "handwired/p1800fl": {
        "target": "team0110/p1800fl"
    },
    "helix/pico/sc/back": {
        "target": "helix/pico/sc"
    },
    "helix/pico/sc/under": {
        "target": "helix/pico/sc"
    },
    "helix/rev2/back/oled": {
        "target": "helix/rev2/back"
    },
    "helix/rev2/oled": {
        "target": "helix/rev2"
    },
    "helix/rev2/oled/back": {
        "target": "helix/rev2/back"
    },
    "helix/rev2/oled/under": {
        "target": "helix/rev2/under"
    },
    "helix/rev2/sc/back": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/sc/oled": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/sc/oledback": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/sc/oledunder": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/sc/under": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/under": {
        "target": "helix/rev2/sc"
    },
    "helix/rev2/under/oled": {
        "target": "helix/rev2/under"
    },
    "honeycomb": {
        "target": "keyhive/honeycomb"
    },
    "idb_60": {
        "target": "idb/idb_60",
        "layouts": {
            "LAYOUT": "LAYOUT_all"
        }
    },
    "idobo": {
        "target": "idobao/id75"
    },
    "jj40": {
        "target": "kprepublic/jj40"
    },
    "jj4x4": {
        "target": "kprepublic/jj4x4"
    },
    "jj50": {
        "target": "kprepublic/jj50"
    },
    "jones": {
        "target": "jones/v03_1"
    },
    "katana60": {
        "target": "rominronin/katana60/rev1"
    },
    "kbdfans/kbd67mkiirgb": {
        "target": "kbdfans/kbd67/mkiirgb",
        "layouts": {
            "LAYOUT": "LAYOUT_65_ansi_blocker"
        }
    },
    "kbdfans/kbd67/mkiirgb": {
        "target": "kbdfans/kbd67/mkiirgb/v1"
    },
    "keebio/dsp40": {
        "target": "keebio/dsp40/rev1"
    },
    "keycapsss/plaid_pad": {
        "target": "keycapsss/plaid_pad/rev1"
    },
    "kudox": {
        "target": "kudox/rev1"
    },
    "kyria": {
        "target": "splitkb/kyria"
    },
    "lattice60": {
        "target": "keyhive/lattice60"
    },
    "lazydesigners/the60": {
        "target": "lazydesigners/the60/rev1"
    },
    "lfkeyboards/lfk78": {
        "target": "lfkeyboards/lfk78/revj"
    },
    "lfkeyboards/smk65": {
        "target": "lfkeyboards/smk65/revb"
    },
    "m3v3van": {
        "target": "matthewdias/m3n3van"
    },
    "maartenwut/atom47/rev2": {
        "target": "evyd13/atom47/rev2"
    },
    "maartenwut/atom47/rev3": {
        "target": "evyd13/atom47/rev3"
    },
    "maartenwut/eon40": {
        "target": "evyd13/eon40"
    },
    "maartenwut/eon65": {
        "target": "evyd13/eon65"
    },
    "maartenwut/eon75": {
        "target": "evyd13/eon75"
    },
    "maartenwut/eon87": {
        "target": "evyd13/eon87"
    },
    "maartenwut/eon95": {
        "target": "evyd13/eon95"
    },
    "maartenwut/gh80_1800": {
        "target": "evyd13/gh80_1800"
    },
    "maartenwut/gh80_3700": {
        "target": "evyd13/gh80_3700"
    },
    "maartenwut/minitomic": {
        "target": "evyd13/minitomic"
    },
    "maartenwut/mx5160": {
        "target": "evyd13/mx5160"
    },
    "maartenwut/nt660": {
        "target": "evyd13/nt660"
    },
    "maartenwut/omrontkl": {
        "target": "evyd13/omrontkl"
    },
    "maartenwut/plain60": {
        "target": "evyd13/plain60"
    },
    "maartenwut/pockettype": {
        "target": "evyd13/pockettype"
    },
    "maartenwut/quackfire": {
        "target": "evyd13/quackfire"
    },
    "maartenwut/solheim68": {
        "target": "evyd13/solheim68"
    },
    "maartenwut/ta65": {
        "target": "evyd13/ta65"
    },
    "maartenwut/wasdat": {
        "target": "evyd13/wasdat"
    },
    "maartenwut/wasdat_code": {
        "target": "evyd13/wasdat_code"
    },
    "maartenwut/wonderland": {
        "target": "evyd13/wonderland"
    },
    "matrix/m12og": {
        "target": "matrix/m12og/rev1"
    },
    "mechlovin/hannah910": {
        "target": "mechlovin/hannah910/rev1"
    },
    "mechlovin/adelais/rgb_led": {
        "target": "mechlovin/adelais/rgb_led/rev1"
    },
    "mechlovin/adelais/standard_led": {
        "target": "mechlovin/adelais/standard_led/rev2"
    },
    "mechlovin/delphine": {
        "target": "mechlovin/delphine/mono_led"
    },
    "mechlovin/hannah60rgb": {
        "target": "mechlovin/hannah60rgb/rev1"
    },
    "mechlovin/hannah65/mechlovin9": {
        "target": "mechlovin/mechlovin9/rev1"
    },
    "mechlovin/hex4b": {
        "target": "mechlovin/hex4b/rev1"
    },
    "melgeek/z70ultra": {
        "target": "melgeek/z70ultra/rev1"
    },
    "mechlovin/hannah65": {
        "target": "mechlovin/hannah65/rev1"
    },
    "minim": {
        "target": "matthewdias/minim"
    },
    "model01": {
        "target": "keyboardio/model01"
    },
    "model_v": {
        "target": "matthewdias/model_v"
    },
    "m0lly": {
        "target": "tkc/m0lly"
    },
    "montsinger/rebound": {
        "target": "montsinger/rebound/rev1"
    },
    "noxary/268_2": {
        "layouts": {
            "LAYOUT": "LAYOUT_65_ansi_blocker"
        }
    },
    "oddball": {
        "target": "oddball/v1"
    },
    "omnikey_blackheart": {
        "target": "viktus/omnikey_bh"
    },
    "omnikey_bh": {
        "target": "viktus/omnikey_bh"
    },
    "opus": {
        "target": "keyhive/opus"
    },
    "pabile/p20": {
        "target": "pabile/p20/ver1"
    },
    "pancake/feather": {
        "target": "spaceman/pancake/feather"
    },
    "pancake/promicro": {
        "target": "spaceman/pancake/promicro"
    },
    "peiorisboards/ixora": {
        "target": "coarse/ixora"
    },
    "percent/canoe": {
        "layouts": {
            "LAYOUT_iso": "LAYOUT_65_iso_blocker"
        }
    },
    "plaid": {
        "target": "dm9records/plaid"
    },
    "plain60": {
        "target": "maartenwut/plain60"
    },
    "ploopyco/trackball": {
        "target": "ploopyco/trackball/rev1_005"
    },
    "polilla": {
        "target": "polilla/rev1"
    },
    "preonic/rev1": {
        "layouts": {
            "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12"
        }
    },
    "preonic/rev2": {
        "layouts": {
            "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12"
        }
    },
    "preonic/rev3": {
        "layouts": {
            "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12"
        }
    },
    "primekb/prime_l": {
        "target": "primekb/prime_l/v1"
    },
    "primekb/prime_l_v2": {
        "target": "primekb/prime_l/v2"
    },
    "projectkb/alice": {
        "target": "projectkb/alice/rev1"
    },
    "rama/koyu": {
        "target": "wilba_tech/rama_works_koyu"
    },
    "rama/m6_a": {
        "target": "wilba_tech/rama_works_m6_a"
    },
    "rama/m6_b": {
        "target": "wilba_tech/rama_works_m6_b"
    },
    "rama/m10_b": {
        "target": "wilba_tech/rama_works_m10_b"
    },
    "rama/m60_a": {
        "target": "wilba_tech/rama_works_m60_a"
    },
    "rama/u80_a": {
        "target": "wilba_tech/rama_works_u80_a"
    },
    "ramonimbao/herringbone": {
        "target": "ramonimbao/herringbone/v1"
    },
    "ramonimbao/mona": {
        "target": "ramonimbao/mona/v1"
    },
    "rgbkb/pan": {
        "target": "rgbkb/pan/rev1/32a"
    },
    "rgbkb/pan/rev1": {
        "target": "rgbkb/pan/rev1/32a"
    },
    "romac": {
        "target": "kingly_keys/romac"
    },
    "ropro": {
        "target": "kingly_keys/ropro"
    },
    "satan": {
        "target": "gh60/satan"
    },
    "skog": {
        "target": "percent/skog"
    },
    "smallice": {
        "target": "keyhive/smallice"
    },
    "southpole": {
        "target": "keyhive/southpole"
    },
    "speedo": {
        "target": "cozykeys/speedo/v2"
    },
    "staryu": {
        "target": "ktec/staryu"
    },
    "stoutgat": {
        "target": "tkw/stoutgat/v1"
    },
    "suihankey": {
        "target": "suihankey/split/alpha"
    },
    "ta65": {
        "target": "maartenwut/ta65"
    },
    "tartan": {
        "target": "dm9records/tartan"
    },
    "tkc1800": {
        "target": "tkc/tkc1800"
    },
    "tkw/stoutgat/v2": {
        "target": "tkw/stoutgat/v2/f411"
    },
    "tokyo60": {
        "target": "tokyokeyboard/tokyo60"
    },
    "txuu": {
        "target": "matthewdias/txuu"
    },
    "underscore33": {
        "target": "underscore33/rev1"
    },
    "vinta": {
        "target": "coarse/vinta",
        "layouts": {
            "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker"
        }
    },
    "wasdat": {
        "target": "maartenwut/wasdat"
    },
    "westfoxtrot/cypher": {
        "target": "westfoxtrot/cypher/rev1"
    },
    "whale/sk": {
        "target": "whale/sk/v3"
    },
    "xd002": {
        "target": "xiudi/xd002"
    },
    "xd004": {
        "target": "xiudi/xd004"
    },
    "xd60": {
        "target": "xiudi/xd60"
    },
    "xd68": {
        "target": "xiudi/xd68"
    },
    "xd75": {
        "target": "xiudi/xd75"
    },
    "xd84": {
        "target": "xiudi/xd84"
    },
    "xd84pro": {
        "target": "xiudi/xd84pro"
    },
    "xd87": {
        "target": "xiudi/xd87"
    },
    "xd96": {
        "target": "xiudi/xd96"
    },
    "xelus/dawn60": {
        "target": "xelus/dawn60/rev1"
    },
    "xelus/valor": {
        "target": "xelus/valor/rev1"
    },
    "z150_blackheart": {
        "target": "viktus/z150_bh"
    },
    "z150_bh":{
        "target": "viktus/z150_bh"
    },
    "zeal60": {
        "target": "wilba_tech/zeal60"
    },
    "zeal65": {
        "target": "wilba_tech/zeal65"
    },
    // Moved during 2022 Q1 cycle
    "6ball": {
        "target": "maple_computing/6ball"
    },
    "7skb": {
        "target": "salicylic_acid3/7skb"
    },
    "7splus": {
        "target": "salicylic_acid3/7splus"
    },
    "acr60": {
        "target": "mechkeys/acr60"
    },
    "adalyn": {
        "target": "tominabox1/adalyn"
    },
    "ajisai74": {
        "target": "salicylic_acid3/ajisai74"
    },
    "aleth42": {
        "target": "25keys/aleth42"
    },
    "alicia_cook": {
        "target": "ibnuda/alicia_cook"
    },
    "allison": {
        "target": "prototypist/allison"
    },
    "allison_numpad": {
        "target": "prototypist/allison_numpad"
    },
    "alu84": {
        "target": "mechkeys/alu84"
    },
    "angel17": {
        "target": "kakunpc/angel17"
    },
    "angel64/alpha": {
        "target": "kakunpc/angel64/alpha"
    },
    "angel64/rev1": {
        "target": "kakunpc/angel64/rev1"
    },
    "arch_36": {
        "target": "obosob/arch_36"
    },
    "bakeneko65/rev2": {
        "target": "kkatano/bakeneko65/rev2"
    },
    "bakeneko65/rev3": {
        "target": "kkatano/bakeneko65/rev3"
    },
    "barleycorn": {
        "target": "yiancardesigns/barleycorn"
    },
    "bat43/rev1": {
        "target": "dailycraft/bat43/rev1"
    },
    "bat43/rev2": {
        "target": "dailycraft/bat43/rev2"
    },
    "bigseries/1key": {
        "target": "woodkeys/bigseries/1key"
    },
    "bigseries/2key": {
        "target": "woodkeys/bigseries/2key"
    },
    "bigseries/3key": {
        "target": "woodkeys/bigseries/3key"
    },
    "bigseries/4key": {
        "target": "woodkeys/bigseries/4key"
    },
    "bkf": {
        "target": "drhigsby/bkf"
    },
    "business_card/alpha": {
        "target": "kakunpc/business_card/alpha"
    },
    "business_card/beta": {
        "target": "kakunpc/business_card/beta"
    },
    "butterstick": {
        "target": "gboards/butterstick"
    },
    "c39": {
        "target": "maple_computing/c39"
    },
    "cassette42": {
        "target": "25keys/cassette42"
    },
    "chidori": {
        "target": "kagizaraya/chidori"
    },
    "chili": {
        "target": "ydkb/chili"
    },
    "chimera_ergo": {
        "target": "glenpickle/chimera_ergo"
    },
    "chimera_ls": {
        "target": "glenpickle/chimera_ls"
    },
    "chimera_ortho": {
        "target": "glenpickle/chimera_ortho"
    },
    "chimera_ortho_plus": {
        "target": "glenpickle/chimera_ortho_plus"
    },
    "choc_taro": {
        "target": "kakunpc/choc_taro"
    },
    "choco60": {
        "target": "recompile_keys/choco60"
    },
    "christmas_tree": {
        "target": "maple_computing/christmas_tree"
    },
    "claw44/rev1": {
        "target": "dailycraft/claw44/rev1"
    },
    "cocoa40": {
        "target": "recompile_keys/cocoa40"
    },
    "comet46": {
        "target": "satt/comet46"
    },
    "cu24": {
        "target": "capsunlocked/cu24"
    },
    "cu75": {
        "target": "capsunlocked/cu75"
    },
    "cu80": {
        "target": "capsunlocked/cu80/v1"
    },
    "delilah": {
        "target": "rainkeebs/delilah"
    },
    "diverge3": {
        "target": "unikeyboard/diverge3"
    },
    "divergetm2": {
        "target": "unikeyboard/divergetm2"
    },
    "dozen0": {
        "target": "yynmt/dozen0"
    },
    "dubba175": {
        "target": "drhigsby/dubba175"
    },
    "eggman": {
        "target": "qpockets/eggman"
    },
    "ergo42": {
        "target": "biacco42/ergo42"
    },
    "ergoarrows": {
        "target": "salicylic_acid3/ergoarrows"
    },
    "ergodash/mini": {
        "target": "omkbd/ergodash/mini"
    },
    "ergodash/rev1": {
        "target": "omkbd/ergodash/rev1"
    },
    "ergodox_infinity": {
        "target": "input_club/ergodox_infinity"
    },
    "ergotaco": {
        "target": "gboards/ergotaco"
    },
    "espectro": {
        "target": "mechkeys/espectro"
    },
    "felix": {
        "target": "unikeyboard/felix"
    },
    "four_banger": {
        "target": "bpiphany/four_banger"
    },
    "freyr": {
        "target": "hnahkb/freyr"
    },
    "geminate60": {
        "target": "weirdo/geminate60"
    },
    "gentleman65": {
        "target": "jkeys_design/gentleman65"
    },
    "georgi": {
        "target": "gboards/georgi"
    },
    "gergo": {
        "target": "gboards/gergo"
    },
    "getta25": {
        "target": "salicylic_acid3/getta25"
    },
    "gingham": {
        "target": "yiancardesigns/gingham"
    },
    "gurindam": {
        "target": "ibnuda/gurindam"
    },
    "halberd": {
        "target": "kagizaraya/halberd"
    },
    "handwired/hillside/0_1": {
        "target": "handwired/hillside/48"
    },
    "hecomi/alpha": {
        "target": "takashiski/hecomi/alpha"
    },
    "hid_liber": {
        "target": "bpiphany/hid_liber"
    },
    "id67/default_rgb": {
        "target": "idobao/id67/default_rgb"
    },
    "id67/rgb": {
        "target": "idobao/id67/rgb"
    },
    "id80": {
        "target": "idobao/id80/v2/ansi"
    },
    "idobao/id80/v1/ansi": {
        "target": "idobao/id80/v2/ansi"
    },
    "idobao/id80/v1/iso": {
        "target": "idobao/id80/v2/iso"
    },
    "id87": {
        "target": "idobao/id87/v1"
    },
    "infinity60": {
        "target": "input_club/infinity60"
    },
    "ivy/rev1": {
        "target": "maple_computing/ivy/rev1"
    },
    "jisplit89": {
        "target": "salicylic_acid3/jisplit89"
    },
    "jnao": {
        "target": "maple_computing/jnao"
    },
    "just60": {
        "target": "ydkb/just60"
    },
    "k_type": {
        "target": "input_club/k_type"
    },
    "kagamidget": {
        "target": "yynmt/kagamidget"
    },
    "kelowna/rgb64": {
        "target": "weirdo/kelowna/rgb64"
    },
    "kprepublic/bm65hsrgb_iso": {
        "target": "kprepublic/bm65hsrgb_iso/rev1"
    },
    "kprepublic/bm68hsrgb": {
        "target": "kprepublic/bm68hsrgb/rev1"
    },
    "latin17rgb": {
        "target": "latincompass/latin17rgb"
    },
    "latin47ble": {
        "target": "latincompass/latin47ble"
    },
    "latin60rgb": {
        "target": "latincompass/latin60rgb"
    },
    "latin64ble": {
        "target": "latincompass/latin64ble"
    },
    "latin6rgb": {
        "target": "latincompass/latin6rgb"
    },
    "latinpad": {
        "target": "latincompass/latinpad"
    },
    "latinpadble": {
        "target": "latincompass/latinpadble"
    },
    "launchpad/rev1": {
        "target": "maple_computing/launchpad/rev1"
    },
    "lck75": {
        "target": "lyso1/lck75"
    },
    "le_chiffre": {
        "target": "tominabox1/le_chiffre"
    },
    "lefishe": {
        "target": "lyso1/lefishe"
    },
    "lets_split_eh/eh": {
        "target": "maple_computing/lets_split_eh/eh"
    },
    "ls_60": {
        "target": "weirdo/ls_60"
    },
    "m3n3van": {
        "target": "matthewdias/m3n3van"
    },
    "mechmini/v1": {
        "target": "mechkeys/mechmini/v1"
    },
    "mechmini/v2": {
        "target": "mechkeys/mechmini/v2"
    },
    "meira": {
        "target": "woodkeys/meira"
    },
    "meishi": {
        "target": "biacco42/meishi"
    },
    "meishi2": {
        "target": "biacco42/meishi2"
    },
    "melody96": {
        "target": "ymdk/melody96"
    },
    "minidox/rev1": {
        "target": "maple_computing/minidox/rev1"
    },
    "mio": {
        "target": "recompile_keys/mio"
    },
    "montex": {
        "target": "idobao/montex/v1"
    },
    "mt40": {
        "target": "mt/mt40"
    },
    "mt64rgb": {
        "target": "mt/mt64rgb"
    },
    "mt84": {
        "target": "mt/mt84"
    },
    "mt980": {
        "target": "mt/mt980"
    },
    "nafuda": {
        "target": "salicylic_acid3/nafuda"
    },
    "naiping/np64": {
        "target": "weirdo/naiping/np64"
    },
    "naiping/nphhkb": {
        "target": "weirdo/naiping/nphhkb"
    },
    "naiping/npminila": {
        "target": "weirdo/naiping/npminila"
    },
    "naked48": {
        "target": "salicylic_acid3/naked48"
    },
    "naked60": {
        "target": "salicylic_acid3/naked60"
    },
    "naked64": {
        "target": "salicylic_acid3/naked64"
    },
    "namecard2x4": {
        "target": "takashiski/namecard2x4"
    },
    "navi10": {
        "target": "keyhive/navi10"
    },
    "nebula12": {
        "target": "spaceholdings/nebula12"
    },
    "nebula68": {
        "target": "spaceholdings/nebula68"
    },
    "nebula68b": {
        "target": "spaceholdings/nebula68b"
    },
    "niu_mini": {
        "target": "kbdfans/niu_mini"
    },
    "nk1": {
        "target": "novelkeys/nk1"
    },
    "nk65": {
        "target": "novelkeys/nk65"
    },
    "nk87": {
        "target": "novelkeys/nk87"
    },
    "nknl7en": {
        "target": "salicylic_acid3/nknl7en"
    },
    "nknl7jp": {
        "target": "salicylic_acid3/nknl7jp"
    },
    "nomu30": {
        "target": "recompile_keys/nomu30"
    },
    "novelpad": {
        "target": "novelkeys/novelpad"
    },
    "ogurec": {
        "target": "drhigsby/ogurec"
    },
    "otaku_split/rev0": {
        "target": "takashiski/otaku_split/rev0"
    },
    "otaku_split/rev1": {
        "target": "takashiski/otaku_split/rev1"
    },
    "owl8": {
        "target": "dailycraft/owl8"
    },
    "packrat": {
        "target": "drhigsby/packrat"
    },
    "pistachio": {
        "target": "rate/pistachio"
    },
    "pistachio_mp": {
        "target": "rate/pistachio_mp"
    },
    "pistachio_pro": {
        "target": "rate/pistachio_pro"
    },
    "plexus75": {
        "target": "checkerboards/plexus75"
    },
    "pursuit40": {
        "target": "checkerboards/pursuit40"
    },
    "qaz": {
        "target": "tominabox1/qaz"
    },
    "quark": {
        "target": "checkerboards/quark"
    },
    "rabbit_capture_plan": {
        "target": "kakunpc/rabbit_capture_plan"
    },
    "rainkeeb": {
        "target": "rainkeebs/rainkeeb"
    },
    "reviung33": {
        "target": "reviung/reviung33"
    },
    "reviung34": {
        "target": "reviung/reviung34"
    },
    "reviung39": {
        "target": "reviung/reviung39"
    },
    "reviung41": {
        "target": "reviung/reviung41"
    },
    "reviung5": {
        "target": "reviung/reviung5"
    },
    "reviung53": {
        "target": "reviung/reviung53"
    },
    "reviung61": {
        "target": "reviung/reviung61"
    },
    "runner3680/3x6": {
        "target": "omkbd/runner3680/3x6"
    },
    "runner3680/3x7": {
        "target": "omkbd/runner3680/3x7"
    },
    "runner3680/3x8": {
        "target": "omkbd/runner3680/3x8"
    },
    "runner3680/4x6": {
        "target": "omkbd/runner3680/4x6"
    },
    "runner3680/4x7": {
        "target": "omkbd/runner3680/4x7"
    },
    "runner3680/4x8": {
        "target": "omkbd/runner3680/4x8"
    },
    "runner3680/5x6": {
        "target": "omkbd/runner3680/5x6"
    },
    "runner3680/5x6_5x8": {
        "target": "omkbd/runner3680/5x6_5x8"
    },
    "runner3680/5x7": {
        "target": "omkbd/runner3680/5x7"
    },
    "runner3680/5x8": {
        "target": "omkbd/runner3680/5x8"
    },
    "scarletbandana": {
        "target": "woodkeys/scarletbandana"
    },
    "scythe": {
        "target": "kagizaraya/scythe"
    },
    "seigaiha": {
        "target": "yiancardesigns/seigaiha"
    },
    "setta21": {
        "target": "salicylic_acid3/setta21"
    },
    "space_space/rev1": {
        "target": "qpockets/space_space/rev1"
    },
    "space_space/rev2": {
        "target": "qpockets/space_space/rev2"
    },
    "spiderisland/winry25tc": {
        "target": "winry/winry25tc"
    },
    "splitreus62": {
        "target": "nacly/splitreus62"
    },
    "squiggle/rev1": {
        "target": "ibnuda/squiggle/rev1"
    },
    "standaside": {
        "target": "edi/standaside"
    },
    "steal_this_keyboard": {
        "target": "obosob/steal_this_keyboard"
    },
    "stella": {
        "target": "hnahkb/stella"
    },
    "suihankey/alpha": {
        "target": "kakunpc/suihankey/alpha"
    },
    "suihankey/rev1": {
        "target": "kakunpc/suihankey/rev1"
    },
    "suihankey/split": {
        "target": "kakunpc/suihankey/split"
    },
    "the_ruler": {
        "target": "maple_computing/the_ruler"
    },
    "thedogkeyboard": {
        "target": "kakunpc/thedogkeyboard"
    },
    "tiger910": {
        "target": "weirdo/tiger910"
    },
    "treadstone32": {
        "target": "marksard/treadstone32"
    },
    "treadstone48/rev1": {
        "target": "marksard/treadstone48/rev1"
    },
    "treadstone48/rev2": {
        "target": "marksard/treadstone48/rev2"
    },
    "ua62": {
        "target": "nacly/ua62"
    },
    "underscore33/rev1": {
        "target": "tominabox1/underscore33/rev1"
    },
    "underscore33/rev2": {
        "target": "tominabox1/underscore33/rev2"
    },
    "uno": {
        "target": "keyhive/uno"
    },
    "ut472": {
        "target": "keyhive/ut472"
    },
    "vn66": {
        "target": "hnahkb/vn66"
    },
    "wallaby": {
        "target": "kkatano/wallaby"
    },
    "wanten": {
        "target": "qpockets/wanten"
    },
    "wheatfield/blocked65": {
        "target": "mt/blocked65"
    },
    "wheatfield/split75": {
        "target": "mt/split75"
    },
    "whitefox": {
        "target": "input_club/whitefox"
    },
    "wings42/rev1": {
        "target": "dailycraft/wings42/rev1"
    },
    "wings42/rev1_extkeys": {
        "target": "dailycraft/wings42/rev1_extkeys"
    },
    "wings42/rev2": {
        "target": "dailycraft/wings42/rev2"
    },
    "yasui": {
        "target": "rainkeebs/yasui"
    },
    "yd60mq": {
        "target": "ymdk/yd60mq"
    },
    "yd68": {
        "target": "ydkb/yd68"
    },
    "ymd75": {
        "target": "ymdk/ymd75"
    },
    "ymd96": {
        "target": "ymdk/ymd96"
    },
    "ymdk_np21": {
        "target": "ymdk/np21"
    },
    "yurei": {
        "target": "kkatano/yurei"
    },
    "zinc": {
        "target": "25keys/zinc"
    },
    "zinc/rev1": {
        "target": "25keys/zinc/rev1"
    },
    "zinc/reva": {
        "target": "25keys/zinc/reva"
    }
}

D data/mappings/keyboard_aliases.json => data/mappings/keyboard_aliases.json +0 -1285
@@ 1,1285 0,0 @@
{
    # Format for each entry:
    # <alias>: {
    #     target: <keyboard_folder>,
    #     layouts: {
    #         <layout_alias>: <layout_target>
    #     }
    # }
    #
    # Both target and layouts are optional.
    '2_milk': {
          target: 'spaceman/2_milk'
    },
    'absinthe': {
        target: 'keyhive/absinthe'
    },
    'aeboards/constellation': {
          target: 'aeboards/constellation/rev1'
    },
    'aeboards/ext65': {
          target: 'aeboards/ext65/rev1'
    },
    'ai03/equinox': {
          target: 'ai03/equinox/rev1'
    },
    aleth42: {
          target: 'aleth42/rev1'
    },
    alice: {
          target: 'tgr/alice'
    },
    amj40: {
        target: 'amjkeyboard/amj40'
    },
    amj60: {
        target: 'amjkeyboard/amj60'
    },
    amj96: {
        target: 'amjkeyboard/amj96'
    },
    amjpad: {
        target: 'amjkeyboard/amjpad'
    },
    angel17: {
          target: 'angel17/alpha'
    },
    angel64: {
          target: 'angel64/alpha'
    },
    at101_blackheart: {
          target: 'viktus/at101_bh'
    },
    at101_bh: {
        target: 'viktus/at101_bh'
    },
    'atom47/rev2': {
          target: 'maartenwut/atom47/rev2'
    },
    'atom47/rev3': {
          target: 'maartenwut/atom47/rev3'
    },
    bakeneko60: {
          target: 'kkatano/bakeneko60'
    },
    bakeneko65: {
          target: 'kkatano/bakeneko65/rev2'
    },
    bakeneko80: {
          target: 'kkatano/bakeneko80'
    },
    bear_face: {
          target: 'bear_face/v1'
    },
    bm16a: {
          target: 'kprepublic/bm16a'
    },
    bm16s: {
          target: 'kprepublic/bm16s'
    },
    bm40hsrgb: {
          target: 'kprepublic/bm40hsrgb'
    },
    bm43a: {
          target: 'kprepublic/bm43a'
    },
    bm60poker: {
          target: 'kprepublic/bm60poker'
    },
    bm60rgb: {
          target: 'kprepublic/bm60rgb'
    },
    bm60rgb_iso: {
          target: 'kprepublic/bm60rgb_iso'
    },
    bm68rgb: {
          target: 'kprepublic/bm68rgb'
    },
    'bpiphany/pegasushoof': {
          target: 'bpiphany/pegasushoof/2013'
    },
    chavdai40: {
          target: 'chavdai40/rev1'
    },
    'candybar/lefty': {
          target: 'tkc/candybar/lefty'
    },
    'candybar/righty': {
          target: 'tkc/candybar/righty'
    },
    canoe: {
          target: 'percent/canoe'
    },
    'clawsome/gamebuddy': {
          target: 'clawsome/gamebuddy/v1_0'
    },
    'cmm_studio/saka68': {
          target: 'cmm_studio/saka68/solder'
    },
    'cospad': {
          target: 'kprepublic/cospad'
    },
    'crkbd/rev1/legacy': {
          target: 'crkbd/rev1'
    },
    'crkbd/rev1/common': {
          target: 'crkbd/rev1'
    },
    'custommk/genesis': {
          target: 'custommk/genesis/rev1'
    },
    'daisy': {
          target: 'ktec/daisy'
    },
    'doro67/multi': {
          layouts: {
                  LAYOUT_ansi: 'LAYOUT_65_ansi_blocker'
          }
    },
    'doro67/regular': {
          layouts: {
                  LAYOUT: 'LAYOUT_65_ansi_blocker'
          }
    },
    'doro67/rgb': {
          layouts: {
                  LAYOUT: 'LAYOUT_65_ansi_blocker'
          }
    },
    drakon: {
          target: 'jagdpietr/drakon'
    },
    'durgod/k320': {
          target: 'durgod/k3x0/k320'
    },
    'dztech/dz60rgb': {
          target: 'dztech/dz60rgb/v1'
    },
    'dztech/dz60rgb_ansi': {
          target: 'dztech/dz60rgb_ansi/v1'
    },
    'dztech/dz60rgb_wkl': {
          target: 'dztech/dz60rgb_wkl/v1'
    },
    'dztech/dz65rgb': {
          target: 'dztech/dz65rgb/v1'
    },
    'dztech/volcano660': {
          target: 'ilumkb/volcano660'
    },
    eek: {
          target: 'eek/silk_down'
    },
    'ergodone': {
          target: 'ktec/ergodone'
    },
    ergoinu: {
          target: 'dm9records/ergoinu'
    },
    ergosaurus: {
        target: 'keyhive/ergosaurus'
    },
    'exclusive/e85': {
          target: 'exclusive/e85/hotswap'
    },
    gh60: {
          target: 'gh60/revc'
    },
    'gmmk/pro': {
          target: 'gmmk/pro/rev1/ansi'
    },
    'gmmk/pro/ansi': {
        target: 'gmmk/pro/rev1/ansi'
    },
    'gmmk/pro/iso': {
        target: 'gmmk/pro/rev1/iso'
    },
    'handwired/ferris': {
          target: 'ferris/0_1'
    },
    'handwired/p1800fl': {
          target: 'team0110/p1800fl'
    },
    'helix/pico/sc/back': {
          target: 'helix/pico/sc'
    },
    'helix/pico/sc/under': {
          target: 'helix/pico/sc'
    },
    'helix/rev2/back/oled': {
          target: 'helix/rev2/back'
    },
    'helix/rev2/oled': {
          target: 'helix/rev2'
    },
    'helix/rev2/oled/back': {
          target: 'helix/rev2/back'
    },
    'helix/rev2/oled/under': {
          target: 'helix/rev2/under'
    },
    'helix/rev2/sc/back': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/sc/oled': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/sc/oledback': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/sc/oledunder': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/sc/under': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/under': {
          target: 'helix/rev2/sc'
    },
    'helix/rev2/under/oled': {
          target: 'helix/rev2/under'
    },
    honeycomb: {
        target: 'keyhive/honeycomb'
    },
    idb_60: {
          target: 'idb/idb_60',
          layouts: {
                  LAYOUT: 'LAYOUT_all'
          }
    },
    idobo: {
        target: 'idobao/id75'
    },
    'jj40': {
          target: 'kprepublic/jj40'
    },
    'jj4x4': {
          target: 'kprepublic/jj4x4'
    },
    'jj50': {
          target: 'kprepublic/jj50'
    },
    jones: {
          target: 'jones/v03_1'
    },
    katana60: {
          target: 'rominronin/katana60/rev1'
    },
    'kbdfans/kbd67mkiirgb': {
          target: 'kbdfans/kbd67/mkiirgb',
          layouts: {
                  LAYOUT: 'LAYOUT_65_ansi_blocker'
          }
    },
    'kbdfans/kbd67/mkiirgb': {
          target: 'kbdfans/kbd67/mkiirgb/v1'
    },
    'keebio/dsp40': {
          target: 'keebio/dsp40/rev1'
    },
    'keycapsss/plaid_pad': {
          target: 'keycapsss/plaid_pad/rev1'
    },
    kudox: {
          target: 'kudox/rev1'
    },
    'kyria': {
          target: 'splitkb/kyria'
    },
    lattice60: {
        target: 'keyhive/lattice60'
    },
    'lazydesigners/the60': {
          target: 'lazydesigners/the60/rev1'
    },
    'lfkeyboards/lfk78': {
          target: 'lfkeyboards/lfk78/revj'
    },
    'lfkeyboards/smk65': {
          target: 'lfkeyboards/smk65/revb'
    },
    m3v3van: {
          target: 'matthewdias/m3n3van'
    },
    'maartenwut/atom47/rev2': {
          target: 'evyd13/atom47/rev2'
    },
    'maartenwut/atom47/rev3': {
          target: 'evyd13/atom47/rev3'
    },
    'maartenwut/eon40': {
          target: 'evyd13/eon40'
    },
    'maartenwut/eon65': {
          target: 'evyd13/eon65'
    },
    'maartenwut/eon75': {
          target: 'evyd13/eon75'
    },
    'maartenwut/eon87': {
          target: 'evyd13/eon87'
    },
    'maartenwut/eon95': {
          target: 'evyd13/eon95'
    },
    'maartenwut/gh80_1800': {
          target: 'evyd13/gh80_1800'
    },
    'maartenwut/gh80_3700': {
          target: 'evyd13/gh80_3700'
    },
    'maartenwut/minitomic': {
          target: 'evyd13/minitomic'
    },
    'maartenwut/mx5160': {
          target: 'evyd13/mx5160'
    },
    'maartenwut/nt660': {
          target: 'evyd13/nt660'
    },
    'maartenwut/omrontkl': {
          target: 'evyd13/omrontkl'
    },
    'maartenwut/plain60': {
          target: 'evyd13/plain60'
    },
    'maartenwut/pockettype': {
          target: 'evyd13/pockettype'
    },
    'maartenwut/quackfire': {
          target: 'evyd13/quackfire'
    },
    'maartenwut/solheim68': {
          target: 'evyd13/solheim68'
    },
    'maartenwut/ta65': {
          target: 'evyd13/ta65'
    },
    'maartenwut/wasdat': {
          target: 'evyd13/wasdat'
    },
    'maartenwut/wasdat_code': {
          target: 'evyd13/wasdat_code'
    },
    'maartenwut/wonderland': {
          target: 'evyd13/wonderland'
    },
    'matrix/m12og': {
          target: 'matrix/m12og/rev1'
    },
    'mechlovin/hannah910': {
          target: 'mechlovin/hannah910/rev1'
    },
    'mechlovin/adelais/rgb_led': {
          target: 'mechlovin/adelais/rgb_led/rev1'
    },
    'mechlovin/adelais/standard_led': {
          target: 'mechlovin/adelais/standard_led/rev2'
    },
    'mechlovin/delphine': {
          target: 'mechlovin/delphine/mono_led'
    },
    'mechlovin/hannah60rgb': {
          target: 'mechlovin/hannah60rgb/rev1'
    },
    'mechlovin/hannah65/mechlovin9': {
          target: 'mechlovin/mechlovin9/rev1'
    },
    'mechlovin/hex4b': {
          target: 'mechlovin/hex4b/rev1'
    },
    'melgeek/z70ultra': {
          target: 'melgeek/z70ultra/rev1'
    },
    'mechlovin/hannah65': {
          target: 'mechlovin/hannah65/rev1'
    },
    minim: {
          target: 'matthewdias/minim'
    },
    model01: {
          target: 'keyboardio/model01'
    },
    model_v: {
          target: 'matthewdias/model_v'
    },
    m0lly: {
          target: 'tkc/m0lly'
    },
    'montsinger/rebound': {
          target: 'montsinger/rebound/rev1'
    },
    nomu30: {
          target: 'nomu30/rev1'
    },
    'noxary/268_2': {
          layouts: {
                  LAYOUT: 'LAYOUT_65_ansi_blocker'
          }
    },
    oddball: {
          target: 'oddball/v1'
    },
    omnikey_blackheart: {
          target: 'viktus/omnikey_bh'
    },
    omnikey_bh: {
        target: 'viktus/omnikey_bh'
    },
    opus: {
        target: 'keyhive/opus'
    },
    'pabile/p20': {
          target: 'pabile/p20/ver1'
    },
    'pancake/feather': {
          target: 'spaceman/pancake/feather'
    },
    'pancake/promicro': {
          target: 'spaceman/pancake/promicro'
    },
    'peiorisboards/ixora': {
          target: 'coarse/ixora'
    },
    'percent/canoe': {
          layouts: {
                  LAYOUT_iso: 'LAYOUT_65_iso_blocker'
          }
    },
    plaid: {
          target: 'dm9records/plaid'
    },
    plain60: {
          target: 'maartenwut/plain60'
    },
    'ploopyco/trackball': {
          target: 'ploopyco/trackball/rev1_005'
    },
    polilla: {
          target: 'polilla/rev1'
    },
    'preonic/rev1': {
          layouts: {
                  LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
          }
    },
    'preonic/rev2': {
          layouts: {
                  LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
          }
    },
    'preonic/rev3': {
          layouts: {
                  LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
          }
    },
    'primekb/prime_l': {
          target: 'primekb/prime_l/v1'
    },
    'primekb/prime_l_v2': {
          target: 'primekb/prime_l/v2'
    },
    'projectkb/alice': {
          target: 'projectkb/alice/rev1'
    },
    'rama/koyu': {
          target: 'wilba_tech/rama_works_koyu'
    },
    'rama/m6_a': {
          target: 'wilba_tech/rama_works_m6_a'
    },
    'rama/m6_b': {
          target: 'wilba_tech/rama_works_m6_b'
    },
    'rama/m10_b': {
          target: 'wilba_tech/rama_works_m10_b'
    },
    'rama/m60_a': {
          target: 'wilba_tech/rama_works_m60_a'
    },
    'rama/u80_a': {
          target: 'wilba_tech/rama_works_u80_a'
    },
    'ramonimbao/herringbone': {
          target: 'ramonimbao/herringbone/v1'
    },
    'ramonimbao/mona': {
          target: 'ramonimbao/mona/v1'
    },
    'rgbkb/pan': {
          target: 'rgbkb/pan/rev1/32a'
    },
    'rgbkb/pan/rev1': {
          target: 'rgbkb/pan/rev1/32a'
    },
    romac: {
          target: 'kingly_keys/romac'
    },
    ropro: {
          target: 'kingly_keys/ropro'
    },
    satan: {
          target: 'gh60/satan'
    },
    skog: {
          target: 'percent/skog'
    },
    smallice: {
        target: 'keyhive/smallice'
    },
    southpole: {
        target: 'keyhive/southpole'
    },
    speedo: {
          target: 'cozykeys/speedo/v2'
    },
    'staryu': {
          target: 'ktec/staryu'
    },
    stoutgat: {
          target: 'tkw/stoutgat/v1'
    },
    suihankey: {
          target: 'suihankey/split/alpha'
    },
    ta65: {
          target: 'maartenwut/ta65'
    },
    tartan: {
          target: 'dm9records/tartan'
    },
    tkc1800: {
          target: 'tkc/tkc1800'
    },
    'tkw/stoutgat/v2': {
          target: 'tkw/stoutgat/v2/f411'
    },
    'tokyo60': {
          target: 'tokyokeyboard/tokyo60'
    },
    'txuu': {
          target: 'matthewdias/txuu'
    },
    underscore33: {
          target: 'underscore33/rev1'
    },
    vinta: {
          target: 'coarse/vinta',
          layouts: {
                  LAYOUT_67_ansi: 'LAYOUT_65_ansi_blocker'
          }
    },
    wasdat: {
          target: 'maartenwut/wasdat'
    },
    'westfoxtrot/cypher': {
          target: 'westfoxtrot/cypher/rev1'
    },
    'whale/sk': {
          target: 'whale/sk/v3'
    },
    'xd002': {
          target: 'xiudi/xd002'
    },
    'xd004': {
          target: 'xiudi/xd004'
    },
    'xd60': {
          target: 'xiudi/xd60'
    },
    'xd68': {
          target: 'xiudi/xd68'
    },
    'xd75': {
          target: 'xiudi/xd75'
    },
    'xd84': {
          target: 'xiudi/xd84'
    },
    'xd84pro': {
          target: 'xiudi/xd84pro'
    },
    'xd87': {
          target: 'xiudi/xd87'
    },
    'xd96': {
          target: 'xiudi/xd96'
    },
    'xelus/dawn60': {
          target: 'xelus/dawn60/rev1'
    },
    'xelus/valor': {
          target: 'xelus/valor/rev1'
    },
    yd60mq: {
          target: 'ymdk/yd60mq/12led'
    },
    ymd75: {
          target: 'ymd75/rev1'
    },
    z150_blackheart: {
          target: 'viktus/z150_bh'
    },
    z150_bh:{
        target: 'viktus/z150_bh'
    },
    zeal60: {
          target: 'wilba_tech/zeal60'
    },
    zeal65: {
          target: 'wilba_tech/zeal65'
    },
    # Moved during 2022 Q1 cycle
    6ball: {
        target: 'maple_computing/6ball'
    },
    7skb: {
        target: 'salicylic_acid3/7skb'
    },
    7splus: {
        target: 'salicylic_acid3/7splus'
    },
    acr60: {
        target: 'mechkeys/acr60'
    },
    adalyn: {
        target: 'tominabox1/adalyn'
    },
    ajisai74: {
        target: 'salicylic_acid3/ajisai74'
    },
    aleth42: {
        target: '25keys/aleth42'
    },
    alicia_cook: {
        target: 'ibnuda/alicia_cook'
    },
    allison: {
        target: 'prototypist/allison'
    },
    allison_numpad: {
        target: 'prototypist/allison_numpad'
    },
    alu84: {
        target: 'mechkeys/alu84'
    },
    angel17: {
        target: 'kakunpc/angel17'
    },
    angel64/alpha: {
        target: 'kakunpc/angel64/alpha'
    },
    angel64/rev1: {
        target: 'kakunpc/angel64/rev1'
    },
    arch_36: {
        target: 'obosob/arch_36'
    },
    bakeneko60: {
        target: 'kkatano/bakeneko60'
    },
    bakeneko65/rev2: {
        target: 'kkatano/bakeneko65/rev2'
    },
    bakeneko65/rev3: {
        target: 'kkatano/bakeneko65/rev3'
    },
    bakeneko80: {
        target: 'kkatano/bakeneko80'
    },
    barleycorn: {
        target: 'yiancardesigns/barleycorn'
    },
    bat43/rev1: {
        target: 'dailycraft/bat43/rev1'
    },
    bat43/rev2: {
        target: 'dailycraft/bat43/rev2'
    },
    bigseries/1key: {
        target: 'woodkeys/bigseries/1key'
    },
    bigseries/2key: {
        target: 'woodkeys/bigseries/2key'
    },
    bigseries/3key: {
        target: 'woodkeys/bigseries/3key'
    },
    bigseries/4key: {
        target: 'woodkeys/bigseries/4key'
    },
    bkf: {
        target: 'drhigsby/bkf'
    },
    business_card/alpha: {
        target: 'kakunpc/business_card/alpha'
    },
    business_card/beta: {
        target: 'kakunpc/business_card/beta'
    },
    butterstick: {
        target: 'gboards/butterstick'
    },
    c39: {
        target: 'maple_computing/c39'
    },
    cassette42: {
        target: '25keys/cassette42'
    },
    chidori: {
        target: 'kagizaraya/chidori'
    },
    chili: {
        target: 'ydkb/chili'
    },
    chimera_ergo: {
        target: 'glenpickle/chimera_ergo'
    },
    chimera_ls: {
        target: 'glenpickle/chimera_ls'
    },
    chimera_ortho: {
        target: 'glenpickle/chimera_ortho'
    },
    chimera_ortho_plus: {
        target: 'glenpickle/chimera_ortho_plus'
    },
    choc_taro: {
        target: 'kakunpc/choc_taro'
    },
    choco60: {
        target: 'recompile_keys/choco60'
    },
    christmas_tree: {
        target: 'maple_computing/christmas_tree'
    },
    claw44/rev1: {
        target: 'dailycraft/claw44/rev1'
    },
    cocoa40: {
        target: 'recompile_keys/cocoa40'
    },
    comet46: {
        target: 'satt/comet46'
    },
    cu24: {
        target: 'capsunlocked/cu24'
    },
    cu75: {
        target: 'capsunlocked/cu75'
    },
    cu80: {
        target: 'capsunlocked/cu80/v1'
    },
    delilah: {
        target: 'rainkeebs/delilah'
    },
    diverge3: {
        target: 'unikeyboard/diverge3'
    },
    divergetm2: {
        target: 'unikeyboard/divergetm2'
    },
    dozen0: {
        target: 'yynmt/dozen0'
    },
    dubba175: {
        target: 'drhigsby/dubba175'
    },
    eggman: {
        target: 'qpockets/eggman'
    },
    ergo42: {
        target: 'biacco42/ergo42'
    },
    ergoarrows: {
        target: 'salicylic_acid3/ergoarrows'
    },
    ergodash/mini: {
        target: 'omkbd/ergodash/mini'
    },
    ergodash/rev1: {
        target: 'omkbd/ergodash/rev1'
    },
    ergodox_infinity: {
        target: 'input_club/ergodox_infinity'
    },
    ergotaco: {
        target: 'gboards/ergotaco'
    },
    espectro: {
        target: 'mechkeys/espectro'
    },
    felix: {
        target: 'unikeyboard/felix'
    },
    four_banger: {
        target: 'bpiphany/four_banger'
    },
    freyr: {
        target: 'hnahkb/freyr'
    },
    geminate60: {
        target: 'weirdo/geminate60'
    },
    gentleman65: {
        target: 'jkeys_design/gentleman65'
    },
    georgi: {
        target: 'gboards/georgi'
    },
    gergo: {
        target: 'gboards/gergo'
    },
    getta25: {
        target: 'salicylic_acid3/getta25'
    },
    gingham: {
        target: 'yiancardesigns/gingham'
    },
    gurindam: {
        target: 'ibnuda/gurindam'
    },
    halberd: {
        target: 'kagizaraya/halberd'
    },
    handwired/hillside/0_1: {
        target: 'handwired/hillside/48'
    }
    hecomi/alpha: {
        target: 'takashiski/hecomi/alpha'
    },
    hid_liber: {
        target: 'bpiphany/hid_liber'
    },
    id67/default_rgb: {
        target: 'idobao/id67/default_rgb'
    },
    id67/rgb: {
        target: 'idobao/id67/rgb'
    },
    id80: {
        target: 'idobao/id80/v2/ansi'
    },
    idobao/id80/v1/ansi: {
        target: 'idobao/id80/v2/ansi'
    },
    idobao/id80/v1/iso: {
        target: 'idobao/id80/v2/iso'
    },
    id87: {
        target: 'idobao/id87/v1'
    },
    idobo: {
        target: 'idobao/id75/v1'
    },
    infinity60: {
        target: 'input_club/infinity60'
    },
    ivy/rev1: {
        target: 'maple_computing/ivy/rev1'
    },
    jisplit89: {
        target: 'salicylic_acid3/jisplit89'
    },
    jnao: {
        target: 'maple_computing/jnao'
    },
    just60: {
        target: 'ydkb/just60'
    },
    k_type: {
        target: 'input_club/k_type'
    },
    kagamidget: {
        target: 'yynmt/kagamidget'
    },
    kelowna/rgb64: {
        target: 'weirdo/kelowna/rgb64'
    },
    kprepublic/bm65hsrgb_iso: {
        target: 'kprepublic/bm65hsrgb_iso/rev1'
    },
    kprepublic/bm68hsrgb: {
        target: 'kprepublic/bm68hsrgb/rev1'
    },
    latin17rgb: {
        target: 'latincompass/latin17rgb'
    },
    latin47ble: {
        target: 'latincompass/latin47ble'
    },
    latin60rgb: {
        target: 'latincompass/latin60rgb'
    },
    latin64ble: {
        target: 'latincompass/latin64ble'
    },
    latin6rgb: {
        target: 'latincompass/latin6rgb'
    },
    latinpad: {
        target: 'latincompass/latinpad'
    },
    latinpadble: {
        target: 'latincompass/latinpadble'
    },
    launchpad/rev1: {
        target: 'maple_computing/launchpad/rev1'
    },
    lck75: {
        target: 'lyso1/lck75'
    },
    le_chiffre: {
        target: 'tominabox1/le_chiffre'
    },
    lefishe: {
        target: 'lyso1/lefishe'
    },
    lets_split_eh/eh: {
        target: 'maple_computing/lets_split_eh/eh'
    },
    ls_60: {
        target: 'weirdo/ls_60'
    },
    m3n3van: {
        target: 'matthewdias/m3n3van'
    },
    mechmini/v1: {
        target: 'mechkeys/mechmini/v1'
    },
    mechmini/v2: {
        target: 'mechkeys/mechmini/v2'
    },
    meira: {
        target: 'woodkeys/meira'
    },
    meishi: {
        target: 'biacco42/meishi'
    },
    meishi2: {
        target: 'biacco42/meishi2'
    },
    melody96: {
        target: 'ymdk/melody96'
    },
    minidox/rev1: {
        target: 'maple_computing/minidox/rev1'
    },
    minim: {
        target: 'matthewdias/minim'
    },
    mio: {
        target: 'recompile_keys/mio'
    },
    model_v: {
        target: 'matthewdias/model_v'
    },
    montex: {
        target: 'idobao/montex/v1'
    },
    mt40: {
        target: 'mt/mt40'
    },
    mt64rgb: {
        target: 'mt/mt64rgb'
    },
    mt84: {
        target: 'mt/mt84'
    },
    mt980: {
        target: 'mt/mt980'
    },
    nafuda: {
        target: 'salicylic_acid3/nafuda'
    },
    naiping/np64: {
        target: 'weirdo/naiping/np64'
    },
    naiping/nphhkb: {
        target: 'weirdo/naiping/nphhkb'
    },
    naiping/npminila: {
        target: 'weirdo/naiping/npminila'
    },
    naked48: {
        target: 'salicylic_acid3/naked48'
    },
    naked60: {
        target: 'salicylic_acid3/naked60'
    },
    naked64: {
        target: 'salicylic_acid3/naked64'
    },
    namecard2x4: {
        target: 'takashiski/namecard2x4'
    },
    navi10: {
        target: 'keyhive/navi10'
    },
    nebula12: {
        target: 'spaceholdings/nebula12'
    },
    nebula68: {
        target: 'spaceholdings/nebula68'
    },
    nebula68b: {
        target: 'spaceholdings/nebula68b'
    },
    niu_mini: {
        target: 'kbdfans/niu_mini'
    },
    nk1: {
        target: 'novelkeys/nk1'
    },
    nk65: {
        target: 'novelkeys/nk65'
    },
    nk87: {
        target: 'novelkeys/nk87'
    },
    nknl7en: {
        target: 'salicylic_acid3/nknl7en'
    },
    nknl7jp: {
        target: 'salicylic_acid3/nknl7jp'
    },
    nomu30: {
        target: 'recompile_keys/nomu30'
    },
    novelpad: {
        target: 'novelkeys/novelpad'
    },
    ogurec: {
        target: 'drhigsby/ogurec'
    },
    otaku_split/rev0: {
        target: 'takashiski/otaku_split/rev0'
    },
    otaku_split/rev1: {
        target: 'takashiski/otaku_split/rev1'
    },
    owl8: {
        target: 'dailycraft/owl8'
    },
    packrat: {
        target: 'drhigsby/packrat'
    },
    pistachio: {
        target: 'rate/pistachio'
    },
    pistachio_mp: {
        target: 'rate/pistachio_mp'
    },
    pistachio_pro: {
        target: 'rate/pistachio_pro'
    },
    plexus75: {
        target: 'checkerboards/plexus75'
    },
    pursuit40: {
        target: 'checkerboards/pursuit40'
    },
    qaz: {
        target: 'tominabox1/qaz'
    },
    quark: {
        target: 'checkerboards/quark'
    },
    rabbit_capture_plan: {
        target: 'kakunpc/rabbit_capture_plan'
    },
    rainkeeb: {
        target: 'rainkeebs/rainkeeb'
    },
    reviung33: {
        target: 'reviung/reviung33'
    },
    reviung34: {
        target: 'reviung/reviung34'
    },
    reviung39: {
        target: 'reviung/reviung39'
    },
    reviung41: {
        target: 'reviung/reviung41'
    },
    reviung5: {
        target: 'reviung/reviung5'
    },
    reviung53: {
        target: 'reviung/reviung53'
    },
    reviung61: {
        target: 'reviung/reviung61'
    },
    runner3680/3x6: {
        target: 'omkbd/runner3680/3x6'
    },
    runner3680/3x7: {
        target: 'omkbd/runner3680/3x7'
    },
    runner3680/3x8: {
        target: 'omkbd/runner3680/3x8'
    },
    runner3680/4x6: {
        target: 'omkbd/runner3680/4x6'
    },
    runner3680/4x7: {
        target: 'omkbd/runner3680/4x7'
    },
    runner3680/4x8: {
        target: 'omkbd/runner3680/4x8'
    },
    runner3680/5x6: {
        target: 'omkbd/runner3680/5x6'
    },
    runner3680/5x6_5x8: {
        target: 'omkbd/runner3680/5x6_5x8'
    },
    runner3680/5x7: {
        target: 'omkbd/runner3680/5x7'
    },
    runner3680/5x8: {
        target: 'omkbd/runner3680/5x8'
    },
    scarletbandana: {
        target: 'woodkeys/scarletbandana'
    },
    scythe: {
        target: 'kagizaraya/scythe'
    },
    seigaiha: {
        target: 'yiancardesigns/seigaiha'
    },
    setta21: {
        target: 'salicylic_acid3/setta21'
    },
    space_space/rev1: {
        target: 'qpockets/space_space/rev1'
    },
    space_space/rev2: {
        target: 'qpockets/space_space/rev2'
    },
    spiderisland/winry25tc: {
        target: 'winry/winry25tc'
    },
    splitreus62: {
        target: 'nacly/splitreus62'
    },
    squiggle/rev1: {
        target: 'ibnuda/squiggle/rev1'
    },
    standaside: {
        target: 'edi/standaside'
    },
    steal_this_keyboard: {
        target: 'obosob/steal_this_keyboard'
    },
    stella: {
        target: 'hnahkb/stella'
    },
    suihankey/alpha: {
        target: 'kakunpc/suihankey/alpha'
    },
    suihankey/rev1: {
        target: 'kakunpc/suihankey/rev1'
    },
    suihankey/split: {
        target: 'kakunpc/suihankey/split'
    },
    the_ruler: {
        target: 'maple_computing/the_ruler'
    },
    thedogkeyboard: {
        target: 'kakunpc/thedogkeyboard'
    },
    tiger910: {
        target: 'weirdo/tiger910'
    },
    treadstone32: {
        target: 'marksard/treadstone32'
    },
    treadstone48/rev1: {
        target: 'marksard/treadstone48/rev1'
    },
    treadstone48/rev2: {
        target: 'marksard/treadstone48/rev2'
    },
    txuu: {
        target: 'matthewdias/txuu'
    },
    ua62: {
        target: 'nacly/ua62'
    },
    underscore33/rev1: {
        target: 'tominabox1/underscore33/rev1'
    },
    underscore33/rev2: {
        target: 'tominabox1/underscore33/rev2'
    },
    uno: {
        target: 'keyhive/uno'
    },
    ut472: {
        target: 'keyhive/ut472'
    },
    vn66: {
        target: 'hnahkb/vn66'
    },
    wallaby: {
        target: 'kkatano/wallaby'
    },
    wanten: {
        target: 'qpockets/wanten'
    },
    'wheatfield/blocked65': {
        target: 'mt/blocked65'
    },
    'wheatfield/split75': {
        target: 'mt/split75'
    },
    whitefox: {
        target: 'input_club/whitefox'
    },
    wings42/rev1: {
        target: 'dailycraft/wings42/rev1'
    },
    wings42/rev1_extkeys: {
        target: 'dailycraft/wings42/rev1_extkeys'
    },
    wings42/rev2: {
        target: 'dailycraft/wings42/rev2'
    },
    yasui: {
        target: 'rainkeebs/yasui'
    },
    yd60mq: {
        target: 'ymdk/yd60mq'
    },
    yd68: {
        target: 'ydkb/yd68'
    },
    ymd75: {
        target: 'ymdk/ymd75'
    },
    ymd96: {
        target: 'ymdk/ymd96'
    },
    ymdk_np21: {
        target: 'ymdk/np21'
    },
    yurei: {
        target: 'kkatano/yurei'
    },
    zinc: {
        target: '25keys/zinc'
    },
    zinc/rev1: {
        target: '25keys/zinc/rev1'
    },
    zinc/reva: {
        target: '25keys/zinc/reva'
    }
}

M data/schemas/keyboard.jsonschema => data/schemas/keyboard.jsonschema +4 -1
@@ 601,7 601,10 @@
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"}, # Deprecated
                "device_ver": {
                    "$ref": "qmk.definitions.v1#/hex_number_4d",
                    "$comment": "Deprecated: use device_version instead"
                },
                "device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
                "force_nkro": {"type": "boolean"},
                "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},

M docs/data_driven_config.md => docs/data_driven_config.md +1 -1
@@ 41,7 41,7 @@ In other cases you should group like options together in an `object`. This is pa

### Add a mapping

In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.json` and `data/mappings/info_rules.json`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys:
In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.hjson` and `data/mappings/info_rules.hjson`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys:

* `info_key`: (required) The location within `info.json` for this value. See below.
* `value_type`: (optional) Default `raw`. The format for this variable's value. See below.

M lib/python/qmk/cli/generate/api.py => lib/python/qmk/cli/generate/api.py +1 -1
@@ 98,7 98,7 @@ def generate_api(cli):

    # Generate data for the global files
    keyboard_list = sorted(kb_all)
    keyboard_aliases = json_load(Path('data/mappings/keyboard_aliases.json'))
    keyboard_aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
    keyboard_metadata = {
        'last_updated': current_datetime(),
        'keyboards': keyboard_list,

M lib/python/qmk/cli/generate/config_h.py => lib/python/qmk/cli/generate/config_h.py +1 -1
@@ 70,7 70,7 @@ def generate_matrix_size(kb_info_json, config_h_lines):
def generate_config_items(kb_info_json, config_h_lines):
    """Iterate through the info_config map to generate basic config values.
    """
    info_config_map = json_load(Path('data/mappings/info_config.json'))
    info_config_map = json_load(Path('data/mappings/info_config.hjson'))

    for config_key, info_dict in info_config_map.items():
        info_key = info_dict['info_key']

M lib/python/qmk/cli/generate/rules_mk.py => lib/python/qmk/cli/generate/rules_mk.py +1 -1
@@ 62,7 62,7 @@ def generate_rules_mk(cli):
        cli.subcommands['generate-rules-mk'].print_help()
        return False

    info_rules_map = json_load(Path('data/mappings/info_rules.json'))
    info_rules_map = json_load(Path('data/mappings/info_rules.hjson'))
    rules_mk_lines = [GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE]

    # Iterate through the info_rules map to generate basic rules

M lib/python/qmk/cli/new/keyboard.py => lib/python/qmk/cli/new/keyboard.py +1 -1
@@ 210,7 210,7 @@ def new_keyboard(cli):

    # Preprocess any development_board presets
    if mcu in dev_boards:
        defaults_map = json_load(Path('data/mappings/defaults.json'))
        defaults_map = json_load(Path('data/mappings/defaults.hjson'))
        board = defaults_map['development_board'][mcu]

        mcu = board['processor']

M lib/python/qmk/commands.py => lib/python/qmk/commands.py +1 -1
@@ 214,7 214,7 @@ def parse_configurator_json(configurator_file):
        exit(1)

    orig_keyboard = user_keymap['keyboard']
    aliases = json_load(Path('data/mappings/keyboard_aliases.json'))
    aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))

    if orig_keyboard in aliases:
        if 'target' in aliases[orig_keyboard]:

M lib/python/qmk/info.py => lib/python/qmk/info.py +3 -3
@@ 483,7 483,7 @@ def _extract_config_h(info_data, config_c):
    """
    # Pull in data from the json map
    dotty_info = dotty(info_data)
    info_config_map = json_load(Path('data/mappings/info_config.json'))
    info_config_map = json_load(Path('data/mappings/info_config.hjson'))

    for config_key, info_dict in info_config_map.items():
        info_key = info_dict['info_key']


@@ 529,7 529,7 @@ def _extract_config_h(info_data, config_c):
def _process_defaults(info_data):
    """Process any additional defaults based on currently discovered information
    """
    defaults_map = json_load(Path('data/mappings/defaults.json'))
    defaults_map = json_load(Path('data/mappings/defaults.hjson'))
    for default_type in defaults_map.keys():
        thing_map = defaults_map[default_type]
        if default_type in info_data:


@@ 555,7 555,7 @@ def _extract_rules_mk(info_data, rules):

    # Pull in data from the json map
    dotty_info = dotty(info_data)
    info_rules_map = json_load(Path('data/mappings/info_rules.json'))
    info_rules_map = json_load(Path('data/mappings/info_rules.hjson'))

    for rules_key, info_dict in info_rules_map.items():
        info_key = info_dict['info_key']

M lib/python/qmk/keyboard.py => lib/python/qmk/keyboard.py +1 -1
@@ 69,7 69,7 @@ def keyboard_folder(keyboard):

    This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
    """
    aliases = json_load(Path('data/mappings/keyboard_aliases.json'))
    aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))

    if keyboard in aliases:
        keyboard = aliases[keyboard].get('target', keyboard)