What's the intent of the ```if option not in dic``` branches above? If the user of the metaclass is allowed to provide a defaults then you mark all the fields as public and improve the docstring of the metaclass.