syntax = "proto3";

package biopb.ome;

option java_package = "biopb.ome";
option java_multiple_files = true;

// An element specifying a possibly heterogeneous collection of data. Folders
// may contain Folders so that data may be organized within a tree of Folders.
// Data may be in multiple Folders but a Folder may not be in more than one
// other Folder.
//
message Folder {

    //  A name for the folder that is suitable for presentation to the user.
    string name = 2;

    // A description for the folder. [plain-text multi-line string]
    string description = 3;

    // Subfolders. This is different from OME-XML implementation, which uses
    // references. Here we use the sematically more nataul recusive composition
    // instead. Composition avoids circular references and is well-supported in
    // protobuf.
    map<string, Folder> sub_folders = 4;

    // References to other metadata
    repeated string image_ids = 5;

    repeated string annotation_ids = 6;

    repeated string roi_ids = 7;

}