@mattjfrank wrote the FAQ on creating virtual switches after I asked the question. Here’s that link:
FAQ: Creating a virtual Device