{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schema": {
      "const": "quay.asset-analysis",
      "type": "string"
    },
    "schemaVersion": {
      "const": "2.0.0-draft.2",
      "type": "string"
    },
    "revision": {
      "type": "string"
    },
    "content": {
      "type": "object",
      "properties": {
        "sha256": {
          "type": "string"
        },
        "byteLength": {
          "type": "number"
        }
      },
      "required": ["sha256", "byteLength"],
      "additionalProperties": false
    },
    "analyzer": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string"
        },
        "threeVersion": {
          "type": "string"
        },
        "policy": {
          "type": "string"
        }
      },
      "required": ["version", "threeVersion", "policy"],
      "additionalProperties": false
    },
    "coordinates": {
      "type": "object",
      "properties": {
        "units": {
          "const": "metres",
          "type": "string"
        },
        "up": {
          "const": "+Y",
          "type": "string"
        },
        "authoredForward": {
          "const": "unknown",
          "type": "string"
        }
      },
      "required": ["units", "up", "authoredForward"],
      "additionalProperties": false
    },
    "validation": {
      "type": "object",
      "properties": {
        "container": {
          "const": "passed",
          "type": "string"
        },
        "loader": {
          "const": "passed",
          "type": "string"
        },
        "khronosValidator": {
          "anyOf": [
            {
              "const": "not-run",
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "producer": {
                  "const": "Khronos glTF Validator",
                  "type": "string"
                },
                "version": {
                  "type": "string"
                },
                "maxIssues": {
                  "type": "number"
                },
                "errors": {
                  "type": "number"
                },
                "warnings": {
                  "type": "number"
                },
                "infos": {
                  "type": "number"
                },
                "hints": {
                  "type": "number"
                },
                "truncated": {
                  "anyOf": [
                    {
                      "const": false,
                      "type": "boolean"
                    },
                    {
                      "const": true,
                      "type": "boolean"
                    }
                  ]
                },
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "pointer": {
                        "type": "string"
                      },
                      "severity": {
                        "type": "number"
                      }
                    },
                    "required": ["code", "pointer", "severity"],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "producer",
                "version",
                "maxIssues",
                "errors",
                "warnings",
                "infos",
                "hints",
                "truncated",
                "messages"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": ["container", "loader", "khronosValidator"],
      "additionalProperties": false
    },
    "inventory": {
      "type": "object",
      "properties": {
        "scenes": {
          "type": "number"
        },
        "nodes": {
          "type": "number"
        },
        "meshes": {
          "type": "number"
        },
        "primitives": {
          "type": "number"
        },
        "materials": {
          "type": "number"
        },
        "textures": {
          "type": "number"
        },
        "skins": {
          "type": "number"
        },
        "morphTargets": {
          "type": "number"
        },
        "animations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "channels": {
                "type": "number"
              }
            },
            "required": ["name", "channels"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "scenes",
        "nodes",
        "meshes",
        "primitives",
        "materials",
        "textures",
        "skins",
        "morphTargets",
        "animations"
      ],
      "additionalProperties": false
    },
    "geometry": {
      "type": "object",
      "properties": {
        "bounds": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "min": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "max": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                }
              },
              "required": ["min", "max"],
              "additionalProperties": false
            }
          ]
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "nodeIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "localMatrix": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "worldMatrix": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "bounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": ["min", "max"],
                    "additionalProperties": false
                  }
                ]
              },
              "localBounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": ["min", "max"],
                    "additionalProperties": false
                  }
                ]
              },
              "aggregateBounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": ["min", "max"],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "nodeIndex",
              "name",
              "localMatrix",
              "worldMatrix",
              "bounds",
              "localBounds",
              "aggregateBounds"
            ],
            "additionalProperties": false
          }
        },
        "meshes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "gltfMeshIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "primitiveIndex": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "vertices": {
                "type": "number"
              },
              "triangles": {
                "type": "number"
              },
              "skinned": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "morphTargets": {
                "type": "number"
              },
              "bounds": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "max": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      }
                    },
                    "required": ["min", "max"],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "required": [
              "gltfMeshIndex",
              "primitiveIndex",
              "name",
              "vertices",
              "triangles",
              "skinned",
              "morphTargets",
              "bounds"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": ["bounds", "nodes", "meshes"],
      "additionalProperties": false
    },
    "featureAvailability": {
      "type": "object",
      "properties": {
        "supportSurfaces": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "contactRegions": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "components": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "cavities": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "openings": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "handles": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "orientation": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        },
        "colliders": {
          "anyOf": [
            {
              "const": "not-analyzed",
              "type": "string"
            },
            {
              "const": "analyzed",
              "type": "string"
            },
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "supportSurfaces",
        "contactRegions",
        "components",
        "cavities",
        "openings",
        "handles",
        "orientation",
        "colliders"
      ],
      "additionalProperties": false
    },
    "planarPatches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "meshIndex": {
            "type": "number"
          },
          "faceIndices": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "faceIndicesComplete": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          },
          "normal": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": ["min", "max"],
            "additionalProperties": false
          },
          "areaM2": {
            "type": "number"
          },
          "purposeCandidate": {
            "anyOf": [
              {
                "const": "support",
                "type": "string"
              },
              {
                "const": "contact",
                "type": "string"
              },
              {
                "const": "other",
                "type": "string"
              }
            ]
          },
          "evidence": {
            "const": "measured-coplanar-edge-connected-triangles",
            "type": "string"
          },
          "weldToleranceM": {
            "type": "number"
          },
          "planeToleranceM": {
            "type": "number"
          },
          "surfaceFrame": {
            "type": "object",
            "properties": {
              "version": {
                "const": "orthonormal-v1",
                "type": "string"
              },
              "localToAsset": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": ["version", "localToAsset"],
            "additionalProperties": false
          }
        },
        "required": [
          "featureId",
          "meshIndex",
          "faceIndices",
          "faceIndicesComplete",
          "normal",
          "bounds",
          "areaM2",
          "purposeCandidate",
          "evidence",
          "weldToleranceM",
          "planeToleranceM"
        ],
        "additionalProperties": false
      }
    },
    "components": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "meshIndex": {
            "type": "number"
          },
          "triangleCount": {
            "type": "number"
          },
          "areaM2": {
            "type": "number"
          },
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": ["min", "max"],
            "additionalProperties": false
          },
          "topology": {
            "anyOf": [
              {
                "const": "closed-oriented-at-weld-tolerance",
                "type": "string"
              },
              {
                "const": "open-or-nonmanifold",
                "type": "string"
              }
            ]
          },
          "weldToleranceM": {
            "type": "number"
          }
        },
        "required": [
          "featureId",
          "meshIndex",
          "triangleCount",
          "areaM2",
          "bounds",
          "topology",
          "weldToleranceM"
        ],
        "additionalProperties": false
      }
    },
    "interpretation": {
      "type": "object",
      "properties": {
        "status": {
          "const": "unknown",
          "type": "string"
        },
        "producer": {
          "const": "none",
          "type": "string"
        }
      },
      "required": ["status", "producer"],
      "additionalProperties": false
    },
    "authored": {
      "type": "object",
      "properties": {
        "defaultScene": {
          "type": "number"
        },
        "scenes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "sceneIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "roots": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": ["sceneIndex", "name", "roots"],
            "additionalProperties": false
          }
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "nodeIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "children": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "mesh": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "skin": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "matrix": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "translation": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "rotation": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "scale": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "weights": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              }
            },
            "required": [
              "nodeIndex",
              "name",
              "children",
              "mesh",
              "skin",
              "matrix",
              "translation",
              "rotation",
              "scale",
              "weights"
            ],
            "additionalProperties": false
          }
        },
        "meshes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "weights": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "primitives": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "primitiveIndex": {
                      "type": "number"
                    },
                    "mode": {
                      "type": "number"
                    },
                    "indices": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "material": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "attributes": {
                      "type": "object",
                      "properties": {},
                      "required": [],
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    },
                    "morphTargets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        }
                      }
                    }
                  },
                  "required": [
                    "primitiveIndex",
                    "mode",
                    "indices",
                    "material",
                    "attributes",
                    "morphTargets"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": ["meshIndex", "name", "weights", "primitives"],
            "additionalProperties": false
          }
        },
        "accessors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accessorIndex": {
                "type": "number"
              },
              "bufferView": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "byteOffset": {
                "type": "number"
              },
              "componentType": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "count": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "type": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "normalized": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "min": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "max": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "sparseCount": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "accessorIndex",
              "bufferView",
              "byteOffset",
              "componentType",
              "count",
              "type",
              "normalized",
              "min",
              "max",
              "sparseCount"
            ],
            "additionalProperties": false
          }
        },
        "materials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "materialIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "doubleSided": {
                "anyOf": [
                  {
                    "const": false,
                    "type": "boolean"
                  },
                  {
                    "const": true,
                    "type": "boolean"
                  }
                ]
              },
              "alphaMode": {
                "type": "string"
              },
              "baseColorFactor": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              },
              "metallicFactor": {
                "type": "number"
              },
              "roughnessFactor": {
                "type": "number"
              },
              "baseColorTexture": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "normalTexture": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "emissiveFactor": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                ]
              }
            },
            "required": [
              "materialIndex",
              "name",
              "doubleSided",
              "alphaMode",
              "baseColorFactor",
              "metallicFactor",
              "roughnessFactor",
              "baseColorTexture",
              "normalTexture",
              "emissiveFactor"
            ],
            "additionalProperties": false
          }
        },
        "textures": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "textureIndex": {
                "type": "number"
              },
              "source": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "sampler": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": ["textureIndex", "source", "sampler"],
            "additionalProperties": false
          }
        },
        "images": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "imageIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "mimeType": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "bufferView": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": ["imageIndex", "name", "mimeType", "bufferView"],
            "additionalProperties": false
          }
        },
        "skins": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "skinIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "joints": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "skeleton": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "inverseBindMatrices": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "skinIndex",
              "name",
              "joints",
              "skeleton",
              "inverseBindMatrices"
            ],
            "additionalProperties": false
          }
        },
        "animations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "animationIndex": {
                "type": "number"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "channels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "sampler": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "node": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "path": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": ["sampler", "node", "path"],
                  "additionalProperties": false
                }
              },
              "samplers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "input": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "output": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "interpolation": {
                      "type": "string"
                    }
                  },
                  "required": ["input", "output", "interpolation"],
                  "additionalProperties": false
                }
              }
            },
            "required": ["animationIndex", "name", "channels", "samplers"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "defaultScene",
        "scenes",
        "nodes",
        "meshes",
        "accessors",
        "materials",
        "textures",
        "images",
        "skins",
        "animations"
      ],
      "additionalProperties": false
    },
    "recommendations": {
      "type": "object",
      "properties": {
        "policy": {
          "const": "authored-frame-conservative-v1",
          "type": "string"
        },
        "normalization": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "const": "suggested",
                  "type": "string"
                },
                "translation": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 3,
                  "maxItems": 3,
                  "items": false
                },
                "quaternion": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 4,
                  "maxItems": 4,
                  "items": false
                },
                "scale": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "number"
                    }
                  ],
                  "minItems": 3,
                  "maxItems": 3,
                  "items": false
                },
                "evidence": {
                  "const": "measured-bounds-center-and-ground",
                  "type": "string"
                }
              },
              "required": [
                "status",
                "translation",
                "quaternion",
                "scale",
                "evidence"
              ],
              "additionalProperties": false
            }
          ]
        },
        "orientation": {
          "type": "object",
          "properties": {
            "up": {
              "const": "+Y",
              "type": "string"
            },
            "upEvidence": {
              "const": "gltf-coordinate-convention",
              "type": "string"
            },
            "front": {
              "const": "unknown",
              "type": "string"
            },
            "horizontalLongAxis": {
              "anyOf": [
                {
                  "const": "X",
                  "type": "string"
                },
                {
                  "const": "Z",
                  "type": "string"
                },
                {
                  "const": "ambiguous",
                  "type": "string"
                }
              ]
            },
            "evidence": {
              "const": "measured-axis-aligned-extents",
              "type": "string"
            }
          },
          "required": [
            "up",
            "upEvidence",
            "front",
            "horizontalLongAxis",
            "evidence"
          ],
          "additionalProperties": false
        },
        "colliderCandidates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "shape": {
                "const": "box",
                "type": "string"
              },
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "evidence": {
                "const": "conservative-rest-pose-bound-envelope",
                "type": "string"
              },
              "approximation": {
                "const": "may-fill-openings-and-empty-space",
                "type": "string"
              },
              "requiresAcceptance": {
                "const": true,
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "shape",
              "center",
              "halfExtents",
              "evidence",
              "approximation",
              "requiresAcceptance"
            ],
            "additionalProperties": false
          }
        },
        "physics": {
          "type": "object",
          "properties": {
            "motion": {
              "const": "static",
              "type": "string"
            },
            "collision": {
              "anyOf": [
                {
                  "const": "none",
                  "type": "string"
                },
                {
                  "const": "solid",
                  "type": "string"
                }
              ]
            },
            "controller": {
              "const": "none",
              "type": "string"
            },
            "role": {
              "const": "unknown",
              "type": "string"
            },
            "evidence": {
              "const": "conservative-fallback-not-material-inference",
              "type": "string"
            },
            "accepted": {
              "const": false,
              "type": "boolean"
            }
          },
          "required": [
            "motion",
            "collision",
            "controller",
            "role",
            "evidence",
            "accepted"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "policy",
        "normalization",
        "orientation",
        "colliderCandidates",
        "physics"
      ],
      "additionalProperties": false
    },
    "staticColliders": {
      "type": "object",
      "properties": {
        "status": {
          "anyOf": [
            {
              "const": "partial",
              "type": "string"
            },
            {
              "const": "unsupported",
              "type": "string"
            },
            {
              "const": "complete",
              "type": "string"
            }
          ]
        },
        "candidates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "meshIndex": {
                "type": "number"
              },
              "geometry": {
                "type": "object",
                "properties": {
                  "shape": {
                    "const": "triangle-mesh",
                    "type": "string"
                  },
                  "motion": {
                    "const": "static-only",
                    "type": "string"
                  },
                  "coordinateFrame": {
                    "const": "authored-scene",
                    "type": "string"
                  },
                  "vertices": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "indices": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "sourceFaces": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "evidence": {
                    "const": "measured-triangles-no-simplification",
                    "type": "string"
                  },
                  "requiresAcceptance": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "shape",
                  "motion",
                  "coordinateFrame",
                  "vertices",
                  "indices",
                  "evidence",
                  "requiresAcceptance"
                ],
                "additionalProperties": false
              }
            },
            "required": ["meshIndex", "geometry"],
            "additionalProperties": false
          }
        }
      },
      "required": ["status", "candidates"],
      "additionalProperties": false
    },
    "fittedPrimitives": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "meshIndex": {
            "type": "number"
          },
          "geometry": {
            "type": "object",
            "properties": {
              "shape": {
                "const": "box",
                "type": "string"
              },
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "evidence": {
                "const": "six-face-triangle-union-coverage",
                "type": "string"
              },
              "toleranceM": {
                "type": "number"
              },
              "requiresAcceptance": {
                "const": true,
                "type": "boolean"
              }
            },
            "required": [
              "shape",
              "center",
              "halfExtents",
              "evidence",
              "toleranceM",
              "requiresAcceptance"
            ],
            "additionalProperties": false
          }
        },
        "required": ["meshIndex", "geometry"],
        "additionalProperties": false
      }
    },
    "orientedBounds": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "meshIndex": {
            "type": "number"
          },
          "bounds": {
            "type": "object",
            "properties": {
              "center": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "halfExtents": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 3,
                "maxItems": 3,
                "items": false
              },
              "quaternion": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "minItems": 4,
                "maxItems": 4,
                "items": false
              },
              "evidence": {
                "const": "authored-orthogonal-axis-envelope",
                "type": "string"
              },
              "occupancy": {
                "const": "unknown",
                "type": "string"
              }
            },
            "required": [
              "center",
              "halfExtents",
              "quaternion",
              "evidence",
              "occupancy"
            ],
            "additionalProperties": false
          }
        },
        "required": ["meshIndex", "bounds"],
        "additionalProperties": false
      }
    },
    "clearanceProbes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "featureId": {
            "type": "string"
          },
          "origin": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 3,
            "maxItems": 3,
            "items": false
          },
          "direction": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "minItems": 3,
            "maxItems": 3,
            "items": false
          },
          "rangeM": {
            "type": "number"
          },
          "hitDistanceM": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "const": "unknown",
                "type": "string"
              },
              {
                "const": "observed-hit",
                "type": "string"
              },
              {
                "const": "no-hit-within-range",
                "type": "string"
              }
            ]
          },
          "scope": {
            "const": "single-ray-not-volume-clearance",
            "type": "string"
          },
          "geometryComplete": {
            "anyOf": [
              {
                "const": false,
                "type": "boolean"
              },
              {
                "const": true,
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "featureId",
          "origin",
          "direction",
          "rangeM",
          "hitDistanceM",
          "status",
          "scope",
          "geometryComplete"
        ],
        "additionalProperties": false
      }
    },
    "rectangularCavities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "bounds": {
            "type": "object",
            "properties": {
              "min": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "max": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "required": ["min", "max"],
            "additionalProperties": false
          },
          "opening": {
            "const": "+Y",
            "type": "string"
          },
          "evidence": {
            "const": "five-covered-inward-planes-empty-interior",
            "type": "string"
          },
          "toleranceM": {
            "type": "number"
          }
        },
        "required": ["bounds", "opening", "evidence", "toleranceM"],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "schemaVersion",
    "revision",
    "content",
    "analyzer",
    "coordinates",
    "validation",
    "inventory",
    "geometry",
    "featureAvailability",
    "planarPatches",
    "components",
    "interpretation",
    "authored"
  ],
  "additionalProperties": false
}
