@bschussek: This would prevent someone from modifying the list of supported mappings thru inheritance.

Consider this scenario: Someone creates their own `button` type (let's call it `random` for example sakes) and they want to allow `$builder->add('random')`...  The way it is now, they can easily override `getSupportedButtonTypeMappings()` in a way that is future proof as such:

    /**
     * {@inheritDoc}
     */
    protected function getSupportedButtonTypeMappings()
    {
        $mappings = parent::getSupportedButtonTypeMappings();
        $mappings['random'] = 'random';
        return $mappings;
    }

and then change the `%form.type_guesser.core.class%` parameter to their overloaded class.

By making it a `private static` variable, the developer in the scenario above would have to redo all the work.