module GraphicsElements
  class GraphicsElementsPresenter
    def present(graphics_elements)
      GraphicsElementsData.new(
        graphics_elements: sort(graphics_elements),
      )
    end

    private

    def sort(graphics_elements)
      graphics_elements.sort_by(&:appears_at)
    end

    class GraphicsElementsData < Struct.new(
      :graphics_elements,
      keyword_init: true)
    end
  end
end
