set -euo pipefail
example_work=$(mktemp -d "${TMPDIR:-/tmp}/jq-yq-example.XXXXXX")
trap 'rm -rf -- "$example_work"' EXIT
cd "$example_work"
mkdir data
cat > data/catalog.yaml <<'JYQ_INPUT_1'
samples:
  - {id: A, site: north, value: 10, tags: [soil, dry]}
  - {id: B, site: south, value: 20, tags: [water], note: review}
  - {id: C, site: north, value: null, tags: []}
JYQ_INPUT_1

yq -o=json -I=0 '.samples | group_by(.site) | map({"site": .[0].site, "count": length})' data/catalog.yaml
