A block style variation is one PHP call

Offering an alternative appearance for an existing block does not need a new block, a build step or any JavaScript — it needs a registration and a CSS class.

register_block_style( 'core/quote', array(
    'name'         => 'turkerdev-pull',
    'label'        => __( 'Pull quote, large', 'turkerdev' ),
    'inline_style' => '.is-style-turkerdev-pull { font-size: 1.5rem; border: 0; }',
) );

// and removing one core ships that the design does not want
// (this one IS javascript: wp.blocks.unregisterBlockStyle)

The style appears in the block’s sidebar and applies is-style-{name} to the wrapper, which is the whole mechanism. inline_style is convenient for a rule or two and belongs in the theme stylesheet for anything larger, since inline styles cannot be cached separately. Unregistering a core style requires JavaScript on enqueue_block_editor_assets, which is an asymmetry with no good reason behind it.