I would like it if init was actually a constructor that took butter as a property.

So it would look like this:

var projectDetails = ProjectDetails( butter );

This way, functions that needed _butter, like tags, would not be possible to call without first creating it with butter.