syntax = "proto3"; package tvix.flatstore.v1; message Path { bytes nar_hash = 1; oneof node { DirectoryNode directory = 2; FileNode file = 3; SymlinkNode symlink = 4; } } message DirectoryNode { bytes name = 1; repeated DirectoryNode directories = 2; repeated FileNode files = 3; repeated SymlinkNode symlinks = 4; } message FileNode { bytes name = 1; bytes hash = 2; repeated Chunk chunks = 3; bool executable = 4; } message Chunk { bytes hash = 1; uint32 size = 2; uint32 size_compressed = 3; } message SymlinkNode { bytes name = 1; bytes target = 2; }