Default settings aren’t used

Instead of saving the default values to the database, you can retrieve them from the class by using a helper method something like the following:

/**
 * Get the option that is saved or the default.
 *
 * @param string $index. The option we want to get.
 */
public function get_settings( $index = false ) {
        $defaults = [ 'id_number' => 123,'title' => 'my title' ];
        $settings = get_option( 'my_option_name', $defaults );
        $settings = wp_parse_args( $settings, $defaults );

        if ( $index && isset( $settings[ $index ] ) ) {
            return $settings[ $index ];
        }

        return $settings;
    }

Hope this helps!