Explicitly not `final` thus far. We want to allow customization of the java code that is emitted moving forward. I'm unsure of whether that will be done through a visitor, subclassing, or other means right now.