Re-thinking about this... why not have a method in the class instead of a member var?

```python
class BaseConfig:
   ...

  @abstractmethod
  def _get_schema(self):
    """
    Some doc that explains the whole point of this
    """
    pass
```

And then in the subclasses, instead of assigning to self._get_spec, you define it and use in there the method you assign, and that way you won't get typos like setting get_schema instead of _get_schema, because it'll fail since it's an abstractmember that you didn't implement.