Shopify mechanical keyboard switch architecture for AI agents: why Topre is not mechanical, why MX keycaps won't fit its round stem, and the five failures that structured data prevents
The Happy Hacking Keyboard Professional Hybrid is discussed, ranked, and sold as a mechanical keyboard. It isn’t. Its Topre switches use capacitive electrostatic sensing — no metal contacts make or break on keypress, no MX stem to accept MX keycaps, no compatibility with any hot-swap socket on the market. An AI agent that doesn’t know this recommends the wrong keycaps, the wrong switches, and accessories the buyer cannot use.
In this article
- What “mechanical” actually means — and what Topre actually is
- The MX ecosystem: cross stem, 3-pin vs 5-pin, hot-swap sockets
- Topre: capacitive rubber dome, round stem, why MX keycaps cannot seat
- Alps SKCM and SKCL: genuinely mechanical, PCB-incompatible with MX
- Kailh Choc: mechanical, low-profile, different socket and stem from MX
- Hall-effect switches: no physical actuation, analog position sensing
- Switch architecture compatibility table: stem, PCB footprint, keycap, socket
- Five AI agent failure classes and what causes each
- keyboard.* metafield reference and JSON-LD for Shopify
What “mechanical” actually means — and what Topre actually is
The word “mechanical” in keyboard marketing is colloquial, not technical. Its practical meaning is not a flat-membrane keyboard. That’s a very low bar. Under that definition, Topre qualifies — but so does a rubber-dome keyboard with individual tactile domes per key, and those are emphatically not what the enthusiast community means.
The technically precise definition of a mechanical keyboard switch is one where individual, discrete mechanical components actuate the electrical contact for each keypress — specifically, a metal spring drives a plastic slider against two metal contacts, closing the circuit. The defining properties are:
- Individual spring per key — each switch has its own dedicated spring, not a shared membrane
- Discrete switch housing — each key position has a self-contained switch that can, in principle, be replaced independently
- Contact closure for registration — a metal-on-metal contact completes the circuit at the actuation point
Cherry MX switches, Gateron switches, Kailh MX switches, Durock, TTC, Boba U4T — all of these meet every criterion. Topre meets the first two (individual spring per key, discrete housing per position) but not the third. The Topre spring does not close a metal contact. The PCB pad below it has a capacitive sensing electrode. The spring’s collapse changes the capacitance of that pad. The keyboard controller detects the capacitance change — the same technology used in touchscreens, just applied to a rubber dome spring system. No metal contacts meet at any point during keypress.
MX-compatible (mechanical)
- Actuation: spring drives slider into gold-plated leaf contacts
- Registration: metal contact closure
- Stem: cross (+) shape, cross-compatible between brands
- Reset: spring pushes slider back, contacts open
- Socket swap: Kailh MX, Mill-Max 3305/7305
Topre (capacitive, not mechanical)
- Actuation: rubber dome collapses conical spring over PCB pad
- Registration: capacitance change detected by controller
- Stem: cylindrical round shape, not cross-compatible
- Reset: rubber dome returns spring to rest position
- Socket swap: not applicable — no socket standard exists
The reason Topre is sold in the mechanical keyboard channel is partly historical (Topre Corporation produces premium keyboards aimed at the same buyers who purchase high-end mechanical boards) and partly community convention. Enthusiasts have accepted “Topre is a mechanical keyboard” as a convenient shorthand for “Topre is not a cheap membrane keyboard.” But AI shopping agents take product titles and descriptions at face value. If the product is titled “HHKB Professional Hybrid — Mechanical Keyboard” and a customer asks “what keycaps are compatible with this mechanical keyboard,” the agent retrieves MX-mount keycaps. They will not fit.
The MX ecosystem: cross stem, 3-pin vs 5-pin, and the hot-swap socket zoo
Cherry GmbH introduced the MX switch in 1983. The cross-shaped (+) stem became the de facto standard because Cherry licensed it broadly and third-party manufacturers — Gateron, Kailh, Outemu, Durock, TTC, JWK — reverse-engineered compatible stems. By 2024, the cross stem is effectively a universal mounting standard within the traditional mechanical keyboard space.
But “MX-compatible” is not a single, unified specification. There are two PCB footprint variants:
3-pin (plate-mount) vs 5-pin (PCB-mount)
Every MX-compatible switch has two electrical pins — the metal legs that complete the circuit on the PCB. Plate-mount (3-pin) switches have these two metal pins plus one central plastic post. PCB-mount (5-pin) switches add two additional corner plastic pins that align the switch precisely in dedicated PCB holes. The electrical function is identical; the mechanical seating differs.
Hot-swap sockets
Hot-swap allows switch replacement without soldering. Several socket standards exist within the MX ecosystem, and they are not interchangeable with each other or with non-MX architectures:
| Socket | Accepts | Does NOT accept | Notes |
|---|---|---|---|
| Kailh MX hot-swap | All MX-compatible 3-pin and 5-pin | Kailh Choc, Alps, Topre | Most common socket in consumer boards |
| Mill-Max 3305 | All MX-compatible 3-pin and 5-pin | Kailh Choc, Alps, Topre | Higher quality, lower profile than Kailh |
| Mill-Max 7305 | All MX-compatible 3-pin and 5-pin | Kailh Choc, Alps, Topre | Even lower profile; preferred for thin boards |
| Outemu hot-swap | Outemu switches, some Kailh MX | Cherry MX (pin diameter slightly different) | Cherry MX pins may not fully seat; use cautiously |
| Kailh Choc socket | Kailh Choc v1 | Kailh MX, Cherry MX, Choc v2 (partially) | Different pin spacing from all MX variants |
The practical implication: a board marketed as “Kailh hot-swap compatible” may have MX sockets or Choc sockets. An AI agent that sees “Kailh hot-swap” in a description and recommends Kailh Choc switches for an MX-socket board — or vice versa — produces an incompatible recommendation even though “Kailh” appears in both. The socket type must be encoded explicitly.
Topre in depth: the round stem, the rubber dome spring, and why standard keycaps don’t fit
Inside a Topre switch housing, the mechanism works as follows:
- The slider (a plastic cylinder with a round stem on top and a rubber dome cavity beneath) sits at rest with the rubber dome fully inflated
- Pressing the key pushes the slider down. The rubber dome collapses — this is the Topre “thock”: the dome collapsing against the PCB creates the characteristic sound
- Beneath the rubber dome, a conical coil spring compresses. As the spring reaches a critical compression point, it buckles — this is the tactile event. The force to compress the spring past buckle point is slightly higher than the force after it, creating the tactile bump
- The conical spring’s collapse changes the capacitance of the PCB sensor electrode beneath it. The controller detects the capacitance drop and registers the keypress
- Releasing the key allows the rubber dome to reinflate, returning the spring and slider to rest position
The round stem on Topre sliders is a cylindrical post. MX keycaps have a cross-shaped socket — the four arms of the cross grip the four walls of the MX cross stem. A round post has no geometry for the MX cross socket to grip. The keycap sits on top of the round post with zero lateral retention and will fall off when the key is not being actively pressed downward.
keyboard.keycap_mount = "Topre" and note in descriptions that MX-to-Topre adapters are required for MX keycap compatibility.
Topre replacement and customization limitations
Topre boards are almost universally not hot-swap in any meaningful sense. Because the Topre PCB is purpose-built for Topre housings (the capacitive sensor electrodes are sized and spaced for Topre switch positions), there is no aftermarket hot-swap socket that converts a Topre board to accept MX switches — the PCB electrode positions don’t align with MX pin positions. The only meaningful Topre “switch swap” is swapping the entire slider and dome assembly, not the switch type. A Topre board is Topre for life unless the owner replaces the entire PCB.
Alps SKCM and SKCL: genuinely mechanical, PCB-incompatible with MX
Alps Electric produced the SKCM (simplified clicky/damped) and SKCL (simplified clicky/linear) series through the 1980s and 1990s. These are unambiguously mechanical switches — a metal spring drives a plastic slider into a metal contact leaf, closing the circuit. But their architecture differs from MX at every structural level:
| Dimension | Alps SKCM/SKCL | MX-compatible |
|---|---|---|
| Stem shape | Cross with flattened rectangular cross-section | Cross with square cross-section |
| PCB pins | 2 rectangular blade pins, specific spacing | 2 round cylindrical pins, different spacing |
| PCB footprint | Alps-specific hole pattern | MX-specific hole pattern |
| Keycap mount | Alps stem (slightly narrower cross-section) | MX stem |
| Example boards | Apple Extended Keyboard II, Dell AT101, Acer 6311 | Most modern mechanical keyboards |
Alps keycaps are increasingly difficult to source — most vintage Alps boards are used for their switches (desoldered and remounted in custom boards with Alps-compatible PCBs) rather than for keycaps. Modern Alps-compatible PCBs (from enthusiast group buys) do exist, but the market is a fraction of the MX ecosystem. An AI agent that categorizes a vintage Alps board as a “mechanical keyboard” and recommends MX keycap sets for it is recommending keycaps that are dimensionally incorrect for the Alps stem — they will sit noticeably loose or simply won’t engage the stem at all.
Kailh Choc: low-profile mechanical, incompatible stem and socket
Kailh Choc switches (v1 released 2018, v2 released 2020) are low-profile mechanical switches — unambiguously mechanical by the technical definition (metal spring, contact closure), but physically incompatible with MX at every interface point:
- Stem: A smaller cross with rounded corners, shallower than MX. MX keycaps physically fit over Choc stems but wobble significantly and sit too high — Choc-specific keycaps have a shorter internal socket depth that matches the Choc stem height
- PCB pins: Two round pins, but at different spacing from MX (Choc pin-to-pin = 5.0mm × 5.9mm; MX pin-to-pin = 3.8mm × 2.54mm). Completely incompatible PCB footprints
- Housing height: Choc total travel is approximately 3.0mm (v1) vs MX standard 4.0mm total travel. The lower profile means Choc boards are significantly thinner
- Choc v1 vs v2: Choc v2 uses a slightly different keycap mounting post that is more MX-compatible but still not standard. Choc v1 keycaps are incompatible with Choc v2 boards without spacers
keyboard.switch_architecture = "Kailh-Choc-v1" or "Kailh-Choc-v2" explicitly. "Low profile" is insufficient.
Hall-effect switches: analog, no physical actuation point
Hall-effect switches (Wooting Lekker, Gateron Magnetic Jade, TTC Frozen V2) use a magnet attached to the switch stem and a Hall-effect sensor on the PCB. As the stem moves, the magnetic field strength at the sensor changes continuously. The controller reads an analog position signal across the full travel range. There is no physical actuation point — the keypress is registered at a software-configurable position.
Hall-effect switches are physically housed in MX-compatible housings and use MX stems (cross-shaped, accepts MX keycaps). The PCB footprint is the same as MX-compatible switches. For keycap and socket compatibility, Hall-effect boards behave like MX boards. But the switch cannot be replaced with a traditional MX switch in a Hall-effect board — the PCB sensor is designed for the magnetic field from the Lekker-type actuator, not for contact-closure from a Cherry MX spring. Encode keyboard.switch_architecture = "Hall-effect" separately from "MX-compatible" even though keycap mount is the same.
Switch architecture compatibility table
| Architecture | Examples | Stem | PCB footprint | MX keycap compatible | MX hot-swap socket |
|---|---|---|---|---|---|
| MX-compatible | Cherry, Gateron, Kailh MX, Durock, TTC, JWK | Cross (+) standard | 2 round pins, MX spacing | Yes | Yes |
| Topre-capacitive | HHKB, Realforce, Leopold (Topre) | Round cylinder | Capacitive sensor, no through-pins | No (adapter needed) | No |
| Alps SKCM/SKCL | Alps Electric vintage boards | Rectangular cross | Blade pins, Alps spacing | No | No |
| Kailh Choc v1 | Kailh Choc Low Profile v1 | Mini cross, round corners | 2 round pins, Choc spacing | Physically fits, wobbles | No (Choc socket only) |
| Kailh Choc v2 | Kailh Choc Low Profile v2 | Mini cross, slightly different | 2 round pins, Choc spacing | Better MX fit than v1 | No (Choc socket only) |
| Hall-effect | Wooting Lekker, Gateron Magnetic Jade | MX cross (magnet inside) | MX footprint + Hall sensor | Yes | Physically fits; MX contact switch won’t function on Hall-effect PCB |
Five AI agent failure classes — and what structured data prevents
Failure 1 — MX keycaps for Topre board
Customer buys MX artisan keycap set for their HHKB
The agent retrieves the buyer’s keyboard ("HHKB Professional Hybrid"), sees "mechanical keyboard" in the description, returns keycap sets tagged as "compatible with most mechanical keyboards" — which means MX stem. The buyer receives keycaps that fall off the round Topre stems on every keystroke. Prevention: keyboard.switch_architecture = "Topre-capacitive" + keyboard.keycap_mount = "Topre" blocks all MX-stem keycap results; agent surfaces Topre-native keycap sets or notes that MX-to-Topre adapters are required.
Failure 2 — Choc switches for MX hot-swap board
Customer buys Kailh Choc tactile switches to hot-swap into their MX board
The agent sees "Kailh hot-swap compatible" in the keyboard listing and "Kailh Choc" in the switch listing, treats "Kailh" as a compatibility signal. Choc pins don’t fit MX sockets. Prevention: keyboard.hot_swap_socket_type = "Kailh-MX" explicitly excludes Choc switch recommendations; the field is a controlled vocabulary, not a brand name.
Failure 3 — 5-pin switches for 3-pin plate without clipping note
Customer orders PCB-mount 5-pin switches for a plate-mount 3-pin board
The agent recommends highly-rated PCB-mount switches (often 5-pin) without noting the pin-clipping requirement. Buyer installs switches, finds them sitting 1mm proud of the plate, assumes switches are defective. Prevention: keyboard.pcb_pin_type = "plate-3pin" either filters to 3-pin switch listings or adds a note that 5-pin switches require corner-pin clipping before installation.
Failure 4 — MX switches for Alps PCB
Customer wants to replace broken Alps SKCM switches, agent recommends Cherry MX replacements
MX pins don’t fit Alps PCB holes. Alps have two rectangular blade pins at Alps-specific spacing; MX has two round cylindrical pins at MX spacing. Physical insertion is impossible; forcing damages the PCB. Prevention: keyboard.switch_architecture = "Alps-compatible" restricts switch recommendations to Alps-compatible inventory (Alps SKCM, Matias switches, Aristotle clones).
Failure 5 — MX keycap sets that don’t cover non-standard bottom row
Customer buys a 65-key keycap set, finds bottom-row modifiers don’t fit their 65% layout
Not an architecture incompatibility but a layout incompatibility. HHKB layout (Topre) has a non-standard bottom row with 1.5u modifiers instead of the standard 1.25u used in most MX keycap sets. Standard TKL keycap sets also omit the right-side 1u Delete/Page Up/End keys used in 65% layouts. Prevention: keyboard.layout encoding (ANSI, HHKB, 65-percent-standard, 65-percent-compact, ISO) allows agent to filter keycap sets that include the correct modifier widths and supplemental keys.
keyboard.* metafield reference and JSON-LD for Shopify
These metafields should be applied to keyboard and switch product types. A switch listing needs switch_architecture and pcb_pin_type; a keyboard listing needs all fields that describe what it accepts.
| Metafield | Type | Values / notes |
|---|---|---|
keyboard.switch_architecture |
string (enum) | MX-compatible | Topre-capacitive | Alps-compatible | Kailh-Choc-v1 | Kailh-Choc-v2 | Hall-effect — the single most important compatibility gate |
keyboard.switch_brand |
string | e.g. Cherry, Gateron, Kailh, Topre, Durock |
keyboard.switch_model |
string | e.g. MX Brown, Yellow Pro, Topre 45g, Choc Red |
keyboard.switch_feel |
string (enum) | linear | tactile | clicky | silent-linear | silent-tactile | capacitive-tactile (Topre) |
keyboard.pcb_pin_type |
string (enum) | plate-3pin | pcb-5pin | topre | choc | hall-effect |
keyboard.hot_swap |
boolean | true | false — whether switches can be removed without soldering |
keyboard.hot_swap_socket_type |
string (enum) | Kailh-MX | Mill-Max-3305 | Mill-Max-7305 | Outemu | Kailh-Choc-v1 | Kailh-Choc-v2 | none |
keyboard.keycap_mount |
string (enum) | MX | Alps | Topre | Choc-v1 | Choc-v2 — controls keycap compatibility |
keyboard.layout |
string (enum) | Full-ANSI | Full-ISO | TKL-ANSI | TKL-ISO | 75pct | 65pct-standard | 65pct-compact | 60pct-standard | 60pct-HHKB | 40pct | JIS |
keyboard.actuation_force_gf |
integer | Grams-force at actuation point. Numerically = cN. Topre: usually 35g, 45g, or 55g |
keyboard.travel_mm_total |
decimal | Total key travel in millimeters. MX standard: 4.0mm; Choc v1: 3.0mm; Topre: 4.0mm |
keyboard.travel_mm_actuation |
decimal | Pre-travel to actuation point. MX standard varies by switch feel: linear ~2.0mm, clicky ~2.2mm |
keyboard.switch_lifespan_m_cycles |
integer | Rated switch lifespan in millions of actuations. Cherry MX: 100M; Gateron: 50–100M; Topre: 50M |
keyboard.form_factor |
string | full | tkl | 75pct | 65pct | 60pct | 40pct | numpad | macro-pad |
JSON-LD example — Gateron Yellow Pro (MX-compatible, linear, 5-pin)
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Gateron Yellow Pro Switch (10-pack) — Linear, 5-pin PCB-mount",
"description": "Gateron Yellow Pro switches with factory lubed smooth linear feel, 35gf actuation, 4.0mm total travel, 2.0mm actuation point. 5-pin PCB-mount — clips two corner pins for 3-pin plates.",
"brand": { "@type": "Brand", "name": "Gateron" },
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "8.50",
"availability": "https://schema.org/InStock"
},
"additionalProperty": [
{ "@type": "PropertyValue", "name": "switch_architecture", "value": "MX-compatible" },
{ "@type": "PropertyValue", "name": "switch_brand", "value": "Gateron" },
{ "@type": "PropertyValue", "name": "switch_model", "value": "Yellow Pro" },
{ "@type": "PropertyValue", "name": "switch_feel", "value": "linear" },
{ "@type": "PropertyValue", "name": "pcb_pin_type", "value": "pcb-5pin" },
{ "@type": "PropertyValue", "name": "keycap_mount", "value": "MX" },
{ "@type": "PropertyValue", "name": "actuation_force_gf", "value": "35" },
{ "@type": "PropertyValue", "name": "travel_mm_total", "value": "4.0" },
{ "@type": "PropertyValue", "name": "travel_mm_actuation", "value": "2.0" },
{ "@type": "PropertyValue", "name": "switch_lifespan_m_cycles", "value": "100" }
]
}
Liquid snippet — switch_architecture gate
{% comment %}
Guard: only show "compatible keycaps" recommendations if keycap_mount is MX.
Topre and Alps require different keycap sets.
{% endcomment %}
{% assign arch = product.metafields.keyboard.switch_architecture.value %}
{% assign keycap_mount = product.metafields.keyboard.keycap_mount.value %}
{% if keycap_mount == "MX" %}
<p class="compat-note">
Compatible with all MX-stem keycaps.
{% if product.metafields.keyboard.pcb_pin_type.value == "pcb-5pin" %}
5-pin PCB-mount — clip two corner plastic pins to fit 3-pin plates.
{% endif %}
</p>
{% elsif keycap_mount == "Topre" %}
<p class="compat-note compat-warn">
Uses Topre round stem. Standard MX keycaps require a MX-to-Topre
adapter stem (e.g. Deskeys Type-D). Native Topre keycaps or
Realforce keycaps are directly compatible.
</p>
{% elsif keycap_mount == "Alps" %}
<p class="compat-note compat-warn">
Uses Alps rectangular stem. Requires Alps-compatible keycaps
(Signature Plastics SA Alps stem, or vintage Alps keycaps only).
Standard MX keycap sets will not fit.
</p>
{% elsif keycap_mount == "Choc-v1" or keycap_mount == "Choc-v2" %}
<p class="compat-note compat-warn">
Kailh Choc low-profile stem. Requires Choc-compatible keycaps
(MBK, Asymplex, LDSA profiles). Standard MX keycap sets seat
loosely and wobble on Choc stems.
</p>
{% endif %}
Is your store invisible to AI shopping agents?
Run a free 18-signal scan. No login, no install — results in 90 seconds.
Run Free Scan See the 100-store leaderboard