1. Component profile
Source-backed JSON per part: physical dimensions, pads, connectors, rails, protocols, firmware targets, plus private field-level quality metadata.
Architecture
Rotor Genie should not be a spec table with vibes sprinkled on top. It should be a build graph that knows what can plug into what, what must be configured, and what might let the smoke out.
Source-backed JSON per part: physical dimensions, pads, connectors, rails, protocols, firmware targets, plus private field-level quality metadata.
Fast indexed fields for filters: mount patterns, cell ranges, KV, prop diameter, UART count, connector families, and video ecosystem.
Advisory-first rules that output severity, plain-English impact, fixes, required user checks, and wiring/setup implications.
Active selections + alternates per slot, so users can compare candidates without losing the build context.
Pad-to-pad assignments, UART reservations, rail budgets, and continuity/smoke-stopper preflight gates.
Betaflight CLI/config output derived from chosen protocols, ports, receiver, VTX, GPS, modes, and safety preferences.
These are the first compatibility rules lifted from the inbox issue reports into code-facing definitions. Public warnings stay plain-English; source files stay internal.
Frame stack holes must intersect the FC/AIO mounting standard before wiring or setup can be trusted.
frame.fc.mount_pattern_mismatch
ESC/4-in-1 board mounting pattern must fit the selected frame stack bay.
frame.esc.mount_pattern_mismatch
Motor screw pattern, screw size, and arm-tip geometry must match the frame.
frame.motor.mount_pattern_mismatch
Prop swept disc must fit the frame/duct clearance before motor testing or wiring routing.
frame.prop.clearance_exceeded
Prop mount type, bore, T-mount spacing, and motor shaft/hub requirements must match.
motor.prop.mount_mismatch
Battery S count/full-charge voltage must be inside ESC/stack input limits.
esc.input.voltage_over_limit
Main battery connector should match the ESC/pigtail connector and current class.
battery.connector.mismatch
ESC continuous current should exceed estimated motor/prop/battery load with thermal margin.
esc.current_rating.under_motor_load
Bidirectional DShot/RPM filtering requires ESC firmware support; FC support alone is not enough.
esc.bidir_dshot.enabled_without_esc_support
Unknown normalized fields should stay explicit and should reduce confidence rather than being treated as safe.
data.critical_field_unknown