New scripts/generate_castellated_edge.py produces a reusable footprint (round PTH pads + an embedded Edge.Cuts line through their centers) for mounting a module flush onto another board's edge, ESP32-WROOM style -- distinct from the QFP/SSOP breakout-adapter footprints already in footprints/other/castellated_breakouts.pretty/. Default pad size (1.0mm dia / 0.5mm drill) matches the vias used in reference/kicad-castellated-breakouts. Generated CASTELLATED_EDGE_1x20_P1.27MM (20 pins, 1.27mm pitch) into footprints/other/castellated_edge.pretty/, registered as MIKILAB_castellated_edge. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5pjBJQ7tf9pwsSs8rG2sm