{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "media_type": {
          "type": "string",
          "const": "text/plain"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4096
        }
      },
      "required": [
        "media_type",
        "text"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "media_type": {
          "type": "string",
          "const": "text/markdown"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4096
        }
      },
      "required": [
        "media_type",
        "text"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "media_type": {
          "type": "string",
          "const": "application/json"
        },
        "data": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "garden": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "day": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "activity": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                }
              },
              "required": [
                "garden",
                "day",
                "activity"
              ],
              "additionalProperties": false,
              "description": "The JSON deliverable for the fictional garden job. No real user data."
            },
            {
              "type": "object",
              "properties": {
                "area": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "temperature_c": {
                  "type": "number",
                  "minimum": -100,
                  "maximum": 70
                },
                "condition": {
                  "type": "string",
                  "enum": [
                    "clear",
                    "cloudy",
                    "rain",
                    "snow"
                  ]
                },
                "observed_at": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "area",
                "temperature_c",
                "condition",
                "observed_at"
              ],
              "additionalProperties": false,
              "description": "JSON weather deliverable. Plain text and Markdown remain supported."
            }
          ]
        }
      },
      "required": [
        "media_type",
        "data"
      ],
      "additionalProperties": false
    }
  ],
  "description": "Work may be ordinary text or Markdown. JSON jobs require the named GardenFacts or WeatherFacts schema. The transport envelope remains JSON. UTF-8 content must also fit the job byte limit.",
  "title": "ResultContent",
  "$comment": "owp-market-local/0.2; fictional loopback market, non-redeemable test credits only."
}
