{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/buildpacks-io/main/json-schema/buildpacks-launch-toml-schema.json",
  "title": "launch.toml",
  "description": "Schema for launch.toml written by a buildpack at $CNB_LAYERS_DIR/launch.toml during the build phase. Declares processes, labels, and slices for the lifecycle exporter.",
  "type": "object",
  "properties": {
    "labels": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["key", "value"],
        "properties": {
          "key": {"type": "string"},
          "value": {"type": "string"}
        }
      }
    },
    "processes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["type", "command"],
        "properties": {
          "type": {
            "type": "string",
            "description": "Process type identifier (e.g. web, worker)."
          },
          "command": {
            "oneOf": [
              {"type": "string"},
              {"type": "array", "items": {"type": "string"}}
            ]
          },
          "args": {
            "type": "array",
            "items": {"type": "string"}
          },
          "default": {"type": "boolean"},
          "working-dir": {"type": "string"},
          "exec-env": {
            "type": "array",
            "items": {"type": "string", "enum": ["production", "test", "development"]}
          }
        }
      }
    },
    "slices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "paths": {
            "type": "array",
            "items": {"type": "string"}
          }
        }
      }
    }
  }
}
