I've re-reviewed the "builders" doc and some of the related links.
It seems clear that I should implement a "YangNature" in addition to a "YangProjectBuilder". The linked docs make the skeleton for this pretty simple.
In the project there is a "YangProjectWizard" class that extends "MavenProjectWizard", with a "performFinish()" method that does the work of actually creating the project. I assume I would attach the "YangNature" at this point.
What's not so clear is exactly what I have do in the builder itself. The docs cover the basic idea, but I'll have to figure out what existing mechanisms in the project I have to integrate this with.
To help understand what mechanisms are already in place, I set a breakpoint in the method and class that calls the Yang parser, and I noted the callstack when I hit this both on a "project clean" and making a trivial change to a file (without saving).
When I do a "project clean", I see classes like AutoBuildJob, BuildManager, MavenBuilder, MavenExecutionContext, and MavenBuilderImpl, followed by a "YangBuildParticipant" which extends "MojoExecutionBuildParticipant", with other project-specific classes including the call to the Yang parser at the top of the stack.
When I just make a change to a file, the same class is at the top of the stack, but the "ReconcilingStrategy" subclass is below that. I've read some of the RS docs, so I know the basic idea of what that's for.