# File lib/versionomy/schema/field.rb, line 69
      def initialize(name_, opts_={}, &block_)
        @name = name_.to_sym
        @type = opts_[:type] || :integer
        if @type == :symbol
          @symbol_info = ::Hash.new
          @symbol_order = ::Array.new
        else
          @symbol_info = nil
          @symbol_order = nil
        end
        @default_value = opts_[:default_value]
        @bump_proc = nil
        @compare_proc = nil
        @canonicalize_proc = nil
        master_builder_ = opts_[:master_builder]
        if master_builder_
          @bump_proc = master_builder_._get_default_setting(@type, :bump)
          @compare_proc = master_builder_._get_default_setting(@type, :compare)
          @canonicalize_proc = master_builder_._get_default_setting(@type, :canonicalize)
          @default_value ||= master_builder_._get_default_setting(@type, :value)
        end
        @ranges = nil
        @default_child = nil
        @children = []
        ::Blockenspiel.invoke(block_, Schema::FieldBuilder.new(self, master_builder_)) if block_
        @default_value = canonicalize_value(@default_value)
      end