containeryard 0.4.0

Container Yard is a declarative, reproducible, and reusable decentralized approach for defining containers. Think Nix flakes meets Containerfiles (aka Dockerfiles).
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "yard module configuration Schema",
  "anyOf": [
    {
      "type": "null"
    },
    {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "This is a modules description"
        },
        "split": {
          "type": "boolean",
          "description": "If true, this module is split across output positions using two or three containerfile/dockerfile blocks. The build fragment is hoisted to the start of the generated Containerfile, the install fragment is injected where the module is declared, and the optional finalize fragment is appended after all declared modules. Defaults to false.",
          "default": false
        },
        "args": {
          "type": "object",
          "properties": {
            "required": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1
            },
            "optional": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "anyOf": [
            {
              "required": [
                "optional"
              ]
            },
            {
              "required": [
                "required"
              ]
            }
          ]
        },
        "requires": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "description": "Module paths that must be included earlier in any output using this module. Each path is resolved relative to this module file."
        },
        "required_files": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of required files for the module. Must be absolution paths from the current directory without a starting \"/\"."
        }
      },
      "required": [],
      "additionalProperties": false
    }
  ]
}