class Lutaml::Model::FormatRegistry

def mappings_class_for(format)

def mappings_class_for(format)
  registered_formats.dig(format, :mapping_class)
end

def register(format, mapping_class:, adapter_class:, transformer:)

def register(format, mapping_class:, adapter_class:, transformer:)
  registered_formats[format] = {
    mapping_class: mapping_class,
    transformer: transformer,
  }
  ::Lutaml::Model::Type::Value.register_format_to_from_methods(format)
  ::Lutaml::Model::Serialize.register_format_mapping_method(format)
  ::Lutaml::Model::Serialize.register_from_format_method(format)
  ::Lutaml::Model::Serialize.register_to_format_method(format)
  Lutaml::Model::Config.set_adapter_for(format, adapter_class)
  Lutaml::Model::Config.define_singleton_method(:"#{format}_adapter") do
    @adapters[format] || adapter_class
  end
  Lutaml::Model::Config.define_singleton_method(:"#{format}_adapter=") do |adapter_klass|
    @adapters ||= {}
    @adapters[format] = adapter_klass
  end
end

def registered_formats

def registered_formats
  @registered_formats ||= {}
end

def transformer_for(format)

def transformer_for(format)
  registered_formats.dig(format, :transformer)
end