package jsonschema

import (
	
	

	orderedmap 
)

var matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
var matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")

// ToSnakeCase converts the provided string into snake case using dashes.
// This is useful for Schema IDs and definitions to be coherent with
// common JSON Schema examples.
func ( string) string {
	 := matchFirstCap.ReplaceAllString(, "${1}-${2}")
	 = matchAllCap.ReplaceAllString(, "${1}-${2}")
	return strings.ToLower()
}

// NewProperties is a helper method to instantiate a new properties ordered
// map.
func () *orderedmap.OrderedMap[string, *Schema] {
	return orderedmap.New[string, *Schema]()
}