<p>Are there any defacto standards for interfacing between common 3D printers and custom extruders or other tooling? I was thinking how it would be good to have switchable nozzle widths mounted on the same heat block and switched between using a solenoid so you could have say a 0.25&nbsp;mm for surface layer and details, then swap to 0.6&nbsp;mm for the infill.</p>

<p>What would be the path of least resistance so it could be accessed in generic firmware? </p>

<p>The design I was thinking would be similar to a generic aluminium heat block with two nozzles screwed in side by side with there inputs meeting in an inverted Y junction with its center drilled out and replaced by a rod with appropriate channeling to divert the already molten plastic between nozzles. Turning the rod would be done from a solenoid mounted somewhere behind the heat-break.with a clamping mechanism.</p>

Generally: nozzles are not changed, the whole tool head is
While "tool change" is easy to implement in a G-code and could be easily adapted in the firmware, there are several practical issues to hot-swapping nozzles without swapping the whole hotend assembly:
The hotend is a fluid-dynamic system that needs to be sealed to operate under pressure and temperature.
The seal of the nozzle-heatbreak system is in most systems a metal-on-metal pressure seal
Rubber seals are not an option in a system that runs over 180°C
Moving metal seals are very hard to make and run smoothly.
Your idea: especially
No
There is literally no way to design a turning Y-switch that fits the following bills:
sealed
filament path ~2 mm
screw-in diameter for heatbreak and nozzles M6
creates enough free space between the lower outlets to mount 2 M6 nozzles with enough space to hold a wrench (=15mm diameter of centers)
fit into the form factor of a conventional heater block
Your idea would need to be considerably larger, need a stronger heater element and creates an impossibly to clean area around the turning junction peg. Atop that, you would trade 1 area of possible leak (between heatbreak and nozzle) for 3 areas of possible leaks (nozzle-block and heatbreak block) and one area of guaranteed leak (the turning peg).
How is it done then?!
Currently, there are the following ways to swap between different of nozzles mid-print that have been proven to work somewhat reliably:
fixed independent print heads with independent carriages.
fixed independent nozzles and heaters on one carriage.
swapping print heads on one carriage.
The first design is used for example in the Leapfrog Bolt, combined heads are for example the
e3D Chimera, Cyclops and Kraken
. e3D also designed on a reliable printhead - or rather tool  - swapping system starting about 2018 and did release it to the public in
late 2019
.
Type 1 needs you to level the printheads well and to the same height in the easy case, but with the right setup of firmware, a Z-offset of the two tools can be included and compensated for - possibly even automatically. Type 3 does usually demands you to include very accurate offsets of the used tools or includes a way to measure the offset during operation, though I lack insight into how e3D solves it. Both setups can mitigate oozing of the unused nozzles out of the printing volume.
Type 2 not only demands hyper exact leveling, but it
also
is very prone to create some sort of oozing of the unused nozzle.