#!/usr/bin/env bash
# RON content validator — wrapper for the Rust validate_ron binary (#611).
#
# Usage:
#   tooling/validate-ron <file.ron> <zone|culture>
#
# Examples:
#   tooling/validate-ron content/global/zone-identity-spec.example.ron zone
#   tooling/validate-ron content/global/culture-van-maanens-star.example.ron culture

set -euo pipefail

if [ $# -lt 2 ]; then
    echo "Usage: tooling/validate-ron <file.ron> <zone|culture>"
    echo ""
    echo "Validates a RON file against the Rust struct schema."
    echo "Schema types:"
    echo "  zone    — ZoneSpec (zone identity spec)"
    echo "  culture — CultureProfile (culture profile)"
    exit 1
fi

# Check file exists before resolving — realpath gives unhelpful errors otherwise
if [ ! -f "$1" ]; then
    echo "Error: file not found: $1"
    exit 1
fi

FILE="$(realpath "$1")"
SCHEMA="$2"

cd "$(dirname "$0")/../server"
exec cargo run --quiet --bin validate_ron -- "$FILE" "$SCHEMA"
