{
  "type": "object",
  "properties": {
    "presentation": {
      "type": "object",
      "properties": {
        "template": {
          "const": "portfolio",
          "type": "string"
        },
        "monogram": {
          "type": "string"
        },
        "rooms": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "stableRoomId": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "canonicalPath": {
                "type": "string"
              },
              "navigationTitle": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "subtitle": {
                "type": "string"
              },
              "seoTitle": {
                "type": "string"
              },
              "seoDescription": {
                "type": "string"
              },
              "html": {
                "type": "string"
              }
            },
            "required": [
              "stableRoomId",
              "slug",
              "canonicalPath",
              "navigationTitle",
              "title",
              "subtitle",
              "seoTitle",
              "seoDescription",
              "html"
            ],
            "additionalProperties": false
          }
        },
        "welcomeAudio": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "landscapeOnMobile": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "introState": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "template",
        "monogram",
        "rooms",
        "welcomeAudio",
        "landscapeOnMobile",
        "introState"
      ],
      "additionalProperties": false
    },
    "version": {
      "const": "rams.site/1",
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "locale": {
      "anyOf": [
        {
          "const": "it",
          "type": "string"
        },
        {
          "const": "en",
          "type": "string"
        }
      ]
    },
    "navigation": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "action": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "anyOf": [
                      {
                        "const": "navigate",
                        "type": "string"
                      },
                      {
                        "const": "focus",
                        "type": "string"
                      },
                      {
                        "const": "overlay",
                        "type": "string"
                      },
                      {
                        "const": "page",
                        "type": "string"
                      },
                      {
                        "const": "info",
                        "type": "string"
                      },
                      {
                        "const": "world-action",
                        "type": "string"
                      },
                      {
                        "const": "cinematic",
                        "type": "string"
                      }
                    ]
                  },
                  "target": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "target"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "external",
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "url"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "back",
                    "type": "string"
                  }
                },
                "required": [
                  "kind"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "label",
          "action"
        ],
        "additionalProperties": false
      }
    },
    "footer": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "action": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "anyOf": [
                          {
                            "const": "navigate",
                            "type": "string"
                          },
                          {
                            "const": "focus",
                            "type": "string"
                          },
                          {
                            "const": "overlay",
                            "type": "string"
                          },
                          {
                            "const": "page",
                            "type": "string"
                          },
                          {
                            "const": "info",
                            "type": "string"
                          },
                          {
                            "const": "world-action",
                            "type": "string"
                          },
                          {
                            "const": "cinematic",
                            "type": "string"
                          }
                        ]
                      },
                      "target": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "target"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "external",
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "url"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "const": "back",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "label",
              "action"
            ],
            "additionalProperties": false
          }
        },
        "branding": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        }
      },
      "required": [
        "text",
        "links",
        "branding"
      ],
      "additionalProperties": false
    },
    "rooms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionSource": {
            "anyOf": [
              {
                "const": "generated",
                "type": "string"
              },
              {
                "const": "authored",
                "type": "string"
              }
            ]
          },
          "image": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "summary",
          "description",
          "descriptionSource",
          "image",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "roomInfo": {
      "anyOf": [
        {
          "const": "card",
          "type": "string"
        },
        {
          "const": "panel",
          "type": "string"
        },
        {
          "const": "chat",
          "type": "string"
        },
        {
          "const": "none",
          "type": "string"
        }
      ]
    },
    "overlays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "const": "text",
                "type": "string"
              },
              {
                "const": "project",
                "type": "string"
              },
              {
                "const": "about",
                "type": "string"
              },
              {
                "const": "gallery",
                "type": "string"
              },
              {
                "const": "embed",
                "type": "string"
              },
              {
                "const": "html",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "component",
                "type": "string"
              }
            ]
          },
          "text": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "fragment": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string"
                  },
                  "css": {
                    "type": "string"
                  },
                  "script": {
                    "type": "string"
                  },
                  "security": {
                    "anyOf": [
                      {
                        "const": "safe",
                        "type": "string"
                      },
                      {
                        "const": "controlled-script",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "html",
                  "css",
                  "script",
                  "security"
                ],
                "additionalProperties": false
              }
            ]
          },
          "component": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "const": "chat",
                "type": "string"
              },
              {
                "const": "rooms",
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "text",
          "images",
          "url",
          "fragment",
          "component",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "pages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "const": "text",
                "type": "string"
              },
              {
                "const": "project",
                "type": "string"
              },
              {
                "const": "about",
                "type": "string"
              },
              {
                "const": "gallery",
                "type": "string"
              },
              {
                "const": "embed",
                "type": "string"
              },
              {
                "const": "html",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "component",
                "type": "string"
              }
            ]
          },
          "text": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "fragment": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "html": {
                    "type": "string"
                  },
                  "css": {
                    "type": "string"
                  },
                  "script": {
                    "type": "string"
                  },
                  "security": {
                    "anyOf": [
                      {
                        "const": "safe",
                        "type": "string"
                      },
                      {
                        "const": "controlled-script",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "html",
                  "css",
                  "script",
                  "security"
                ],
                "additionalProperties": false
              }
            ]
          },
          "component": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "const": "chat",
                "type": "string"
              },
              {
                "const": "rooms",
                "type": "string"
              }
            ]
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "anyOf": [
                            {
                              "const": "navigate",
                              "type": "string"
                            },
                            {
                              "const": "focus",
                              "type": "string"
                            },
                            {
                              "const": "overlay",
                              "type": "string"
                            },
                            {
                              "const": "page",
                              "type": "string"
                            },
                            {
                              "const": "info",
                              "type": "string"
                            },
                            {
                              "const": "world-action",
                              "type": "string"
                            },
                            {
                              "const": "cinematic",
                              "type": "string"
                            }
                          ]
                        },
                        "target": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "target"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "external",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "back",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "label",
                "action"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "title",
          "kind",
          "text",
          "images",
          "url",
          "fragment",
          "component",
          "actions"
        ],
        "additionalProperties": false
      }
    },
    "assets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "alt": {
            "type": "string"
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "alt",
          "data"
        ],
        "additionalProperties": false
      }
    },
    "theme": {
      "type": "object",
      "properties": {
        "mode": {
          "anyOf": [
            {
              "const": "dark",
              "type": "string"
            },
            {
              "const": "light",
              "type": "string"
            },
            {
              "const": "system",
              "type": "string"
            }
          ]
        },
        "font": {
          "anyOf": [
            {
              "const": "system",
              "type": "string"
            },
            {
              "const": "serif",
              "type": "string"
            },
            {
              "const": "mono",
              "type": "string"
            }
          ]
        },
        "fontSize": {
          "type": "number"
        },
        "spacing": {
          "type": "number"
        },
        "radius": {
          "type": "number"
        },
        "background": {
          "type": "string"
        },
        "foreground": {
          "type": "string"
        },
        "accent": {
          "type": "string"
        },
        "navigation": {
          "anyOf": [
            {
              "const": "solid",
              "type": "string"
            },
            {
              "const": "glass",
              "type": "string"
            }
          ]
        },
        "footer": {
          "anyOf": [
            {
              "const": "compact",
              "type": "string"
            },
            {
              "const": "expanded",
              "type": "string"
            }
          ]
        },
        "overlay": {
          "anyOf": [
            {
              "const": "center",
              "type": "string"
            },
            {
              "const": "side",
              "type": "string"
            }
          ]
        },
        "transitions": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "logo": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "mode",
        "font",
        "fontSize",
        "spacing",
        "radius",
        "background",
        "foreground",
        "accent",
        "navigation",
        "footer",
        "overlay",
        "transitions",
        "logo"
      ],
      "additionalProperties": false
    },
    "contact": {
      "type": "object",
      "properties": {
        "endpoint": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "alternative": {
          "type": "string"
        },
        "privacy": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "required": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "id",
              "label",
              "required"
            ],
            "additionalProperties": false
          }
        },
        "honeypot": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        }
      },
      "required": [
        "endpoint",
        "alternative",
        "privacy",
        "fields",
        "honeypot"
      ],
      "additionalProperties": false
    },
    "chat": {
      "type": "object",
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "const": false,
              "type": "boolean"
            },
            {
              "const": true,
              "type": "boolean"
            }
          ]
        },
        "welcome": {
          "type": "string"
        }
      },
      "required": [
        "enabled",
        "welcome"
      ],
      "additionalProperties": false
    },
    "security": {
      "type": "object",
      "properties": {
        "embedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "embedOrigins"
      ],
      "additionalProperties": false
    },
    "deploy": {
      "type": "object",
      "properties": {
        "target": {
          "const": "static",
          "type": "string"
        },
        "basePath": {
          "type": "string"
        },
        "profiles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "transport": {
                "anyOf": [
                  {
                    "const": "local",
                    "type": "string"
                  },
                  {
                    "const": "ssh",
                    "type": "string"
                  },
                  {
                    "const": "sftp",
                    "type": "string"
                  },
                  {
                    "const": "rsync",
                    "type": "string"
                  },
                  {
                    "const": "scp",
                    "type": "string"
                  },
                  {
                    "const": "ftp",
                    "type": "string"
                  },
                  {
                    "const": "ftps",
                    "type": "string"
                  },
                  {
                    "const": "custom",
                    "type": "string"
                  }
                ]
              },
              "host": {
                "type": "string"
              },
              "port": {
                "type": "number"
              },
              "username": {
                "type": "string"
              },
              "destination": {
                "type": "string"
              },
              "credentialRef": {
                "type": "string"
              },
              "strategy": {
                "anyOf": [
                  {
                    "const": "atomic",
                    "type": "string"
                  },
                  {
                    "const": "directory",
                    "type": "string"
                  }
                ]
              },
              "buildProfile": {
                "const": "production",
                "type": "string"
              },
              "preDeploy": {
                "const": "verify",
                "type": "string"
              },
              "postDeploy": {
                "const": "healthcheck",
                "type": "string"
              },
              "healthCheck": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "expectedStatus": {
                    "type": "number"
                  },
                  "expectedText": {
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "expectedStatus",
                  "expectedText"
                ],
                "additionalProperties": false
              },
              "timeout": {
                "type": "number"
              },
              "keepReleases": {
                "type": "number"
              },
              "compression": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "clean": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "passive": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "tls": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "id",
              "name",
              "transport",
              "host",
              "port",
              "username",
              "destination",
              "credentialRef",
              "strategy",
              "buildProfile",
              "preDeploy",
              "postDeploy",
              "healthCheck",
              "timeout",
              "keepReleases",
              "compression",
              "clean",
              "passive",
              "tls"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "target",
        "basePath"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "version",
    "title",
    "locale",
    "navigation",
    "footer",
    "rooms",
    "roomInfo",
    "overlays",
    "pages",
    "assets",
    "theme",
    "contact",
    "chat",
    "security",
    "deploy"
  ],
  "additionalProperties": false
}
