"$schema": http://json-schema.org/draft-04/schema# "$id": https://nix.dev/manual/nix/latest/protocols/json/schema/file-system-object-v1.json title: File System Object description: | This schema describes the JSON representation of Nix's [File System Object](@docroot@/store/file-system-object.md). The schema is recursive because file system objects contain other file system objects. type: object required: ["type"] properties: type: type: string enum: ["regular", "symlink", "directory"] # Enforce conditional structure based on `type` anyOf: - $ref: "#/$defs/regular" required: ["type", "contents"] - $ref: "#/$defs/symlink" required: ["type", "target"] - $ref: "#/$defs/directory" required: ["type", "contents"] "$defs": regular: title: Regular File required: ["contents"] properties: type: const: "regular" contents: type: string description: Base64-encoded file contents executable: type: boolean description: Whether the file is executable. default: false additionalProperties: false symlink: title: Symbolic Link required: ["target"] properties: type: const: "symlink" target: type: string description: Target path of the symlink. additionalProperties: false directory: title: Directory required: ["contents"] properties: type: const: "directory" contents: type: object description: | Map of names to nested file system objects (for type=directory) additionalProperties: $ref: "#" additionalProperties: false