#!/usr/bin/env bash set -euo pipefail schema="shared/schemas/conductor-project.schema.json" validator="./node_modules/.bin/ajv" valid_count=0 invalid_count=0 diagnostic_count=0 for fixture in examples/project-definitions/valid-*.json; do "$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null valid_count=$((valid_count + 1)) done for fixture in \ examples/project-definitions/invalid-dropdown-option-shape.json \ examples/project-definitions/invalid-missing-required.json; do if "$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null 2>&1; then echo "Expected schema rejection but fixture passed: $fixture" >&2 exit 1 fi invalid_count=$((invalid_count + 1)) done for fixture in \ examples/project-definitions/invalid-template-malformed.json \ examples/project-definitions/invalid-template-missing-component.json; do "$validator" validate -s "$schema" -d "$fixture" --spec=draft2020 >/dev/null diagnostic_count=$((diagnostic_count + 1)) done echo "Schema matrix passed: $valid_count valid, $invalid_count expected-invalid, $diagnostic_count diagnostic-invalid."