{
  "openapi": "3.1.0",
  "info": {
    "title": "Aleš Kovačič service enquiries",
    "version": "1.0.0",
    "description": "Submit only with the user's authorization and consent to processing their contact details to answer the enquiry. Never invent contact details or consent. This sends an enquiry, not an order or payment."
  },
  "servers": [
    {
      "url": "https://aleskovacic.com"
    }
  ],
  "paths": {
    "/api/enquiry": {
      "post": {
        "operationId": "submitServiceEnquiry",
        "summary": "Send a service enquiry with the user's authorization",
        "description": "Ask the user to confirm the complete enquiry before sending. Prices and availability require a separate reply; do not promise either. Identical submissions are deduplicated for 15 minutes. Describe the website requirements in this enquiry to receive an individual offer.",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_-]{16,100}$"
            },
            "description": "Generate one key per enquiry and reuse it unchanged for retries. Do not reuse it for changed content."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Enquiry"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stored successfully; owner notification is sent or queued for retry. Only this response confirms acceptance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "reference"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "reference": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Not accepted. Correct invalid inputs; for 429/503 retry later with the same key. A timeout does not prove failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": false
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Contact": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "email",
          "message",
          "consent"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1
          },
          "email": {
            "type": "string",
            "maxLength": 254,
            "format": "email"
          },
          "company": {
            "type": "string",
            "maxLength": 160
          },
          "phone": {
            "type": "string",
            "maxLength": 40
          },
          "message": {
            "type": "string",
            "maxLength": 5000,
            "minLength": 10
          },
          "budget": {
            "type": "string",
            "maxLength": 120
          },
          "timeline": {
            "type": "string",
            "maxLength": 100
          },
          "consent": {
            "type": "boolean",
            "const": true,
            "description": "The user explicitly consents to processing their contact details to answer this enquiry."
          }
        }
      },
      "Enquiry": {
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "general",
                "description": "General enquiry / Splošno povpraševanje"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {}
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "website",
                "description": "Website creation or refresh / Izdelava ali osvežitev spletne strani"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "projectType": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Website project / Spletni projekt",
                    "enum": [
                      "",
                      "new",
                      "refresh",
                      "unsure"
                    ]
                  },
                  "existingUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Existing website (if any) / Obstoječa spletna stran (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "materials": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Available copy, images and other materials / Razpoložljiva besedila, slike in druga gradiva"
                  },
                  "specifics": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Special requirements or integrations / Posebne zahteve ali integracije"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "automation",
                "description": "AI and automation / AI in avtomatizacija"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "currentProcess": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "How does the process work today? / Kako proces poteka danes?"
                  },
                  "systems": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Tools and systems you use / Orodja in sistemi, ki jih uporabljate"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "mobile-app",
                "description": "Mobile and native apps / Mobilne in namenske aplikacije"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "users": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Who will use the app? / Kdo bo uporabljal aplikacijo?"
                  },
                  "platform": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Platform (if decided) / Platforma (če je določena)",
                    "enum": [
                      "",
                      "ios",
                      "android",
                      "both",
                      "macos",
                      "unsure"
                    ]
                  },
                  "existingSystem": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Existing system to connect to (if any) / Obstoječi sistem za povezavo (če obstaja)"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "web-app",
                "description": "Web application / Spletna aplikacija"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "users": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Who will use the solution? / Kdo bo uporabljal rešitev?"
                  },
                  "existingSystem": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Existing systems or integrations / Obstoječi sistemi ali integracije"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "api",
                "description": "APIs and integrations / API-ji in integracije"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "users": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Who will use the solution? / Kdo bo uporabljal rešitev?"
                  },
                  "existingSystem": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Existing systems or integrations / Obstoječi sistemi ali integracije"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "platform",
                "description": "Platform development / Razvoj platforme"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "users": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Who will use the solution? / Kdo bo uporabljal rešitev?"
                  },
                  "existingSystem": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Existing systems or integrations / Obstoječi sistemi ali integracije"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "wordpress",
                "description": "WordPress visual fix / Vizualni popravek WordPress"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "forms",
                "description": "Existing form repair / Popravilo obstoječega obrazca"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "seo",
                "description": "One-page SEO cleanup / SEO ureditev ene strani"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "speed",
                "description": "Page-speed quick pass / Hiter pregled hitrosti"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "ux",
                "description": "UX and conversion review / UX in prodajni pregled"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "section",
                "description": "One web section design / Oblikovanje enega razdelka"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "kind",
              "version",
              "serviceId",
              "website",
              "contact",
              "details",
              "meta"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "const": "service"
              },
              "version": {
                "type": "integer",
                "const": 1
              },
              "serviceId": {
                "type": "string",
                "const": "landing",
                "description": "Single-page landing page / Enostranska pristajalna stran"
              },
              "website": {
                "type": "string",
                "const": "",
                "description": "Anti-spam field; always an empty string."
              },
              "contact": {
                "$ref": "#/components/schemas/Contact"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "systemUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Relevant website or system URL (if any) / Povezava do relevantne strani ali sistema (če obstaja). Optional full http(s) URL without credentials; omit when unknown."
                  },
                  "environment": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Relevant tools or technology / Relevantna orodja ali tehnologija"
                  }
                }
              },
              "meta": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "submittedAt",
                  "locale",
                  "pageUrl"
                ],
                "properties": {
                  "submittedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "sl-SI",
                      "en-GB"
                    ]
                  },
                  "pageUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "Public page used to submit the enquiry, e.g. https://aleskovacic.com/enquiry."
                  }
                }
              }
            }
          }
        ]
      }
    }
  }
}
