``` plantuml
@startuml

'******************************************************************************
'JSON

namespace Input{
class TextureFile
{
  FileName
  Path
  FileSize  
  EditDate
  FileType
  Bytes
  Hash
  PixelSize
  DPI  
}

package JSON{
  class Settings{

  }

  class Tiling{

  }

  class Diffuse{

  }

  class Specular{
    Strength
  }

  class Normal{
    Strength
  }


  class TextureData{
    optional
    Per individual Texture
    ---
    RealDimensions
    DisplayName
  }
  class ToolData as "TaskInstructions"{
    required
    Per Task
    ---
    ProcessingType
    OverrideOldInstructions
  }
  class BuildupData{

  }

  ToolData --* Tiling
  ToolData --* Diffuse
  ToolData --* Specular
  ToolData --* Normal


  Tiling --|> Settings
  Diffuse --|> Settings
  Specular --|> Settings
  Normal --|> Settings
}

}


'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************
'Process

Process --* ToolData : 1
Process --o TextureData : 0..*

BuildupJsonLoader --* BuildupData
BuildupJsonLoader --> ToolData
BuildupJsonLoader --> TextureData

namespace Output{
  class TextureFile{
    same as input
  }

  class TextureData{
    same as input
    ---
    OldHash
  }
}

Process --> Output

'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************
'Access

class WebAPI{
  Upload(Texture[], JSON TaskInstructions, JSON TextureData = null)
}

class AutoProcessor{

}

UploadScanner --> WebAPI
UploadScanner --> DROP

AutoProcessor --> DROP : scans
AutoProcessor --> BuildupJsonLoader
AutoProcessor --> Process

'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************
'


'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************
'


'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************
'


'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

@enduml
```
