In concrete terms this means progressively enhancing the File interface to deal in value.Value:
type File interface {
io.ReadCloser
FileName() string
FullPath() string
IsDirectory() bool
NextFile() (File, error)
ModTime() time.Time
Size()
MediaType() string
Value() interface{}
}
The goal is to eventually end here:
type File interface {
Path() string
Size() int64
ModTime() time.Time
MediaType() string
Value() interface{}
}