Why does my custom element type error around locale being missing on the element types' model?
That's interesting Luke, I had the exact same issue and spent WAY too long on it.

Even though I used a diff tool to see the difference between working elementType models and the one with the error I just did not catch the silly difference:

protected function defineAttributes()
{
    return array(


vs the working:

protected function defineAttributes()
{
    return array_merge(parent::defineAttributes(), array(


you need to add the parent attributes that includes attributes like locale :)

I knew that all along, but just didn't catch it on multiple re-reviewing of the Model.