The "clamp" density function type has an "input" field. But it only allows a direct (inlined) density function or a constant, it doesn't allow a reference (string). This is inconsistent with every other density function that takes another density function as argument.
The reason is because DensityFunctions.Clamp uses DensityFunction.DIRECT_CODEC, instead of DensityFunctions.HOLDER_HELPER_CODEC, which is what every other density function type uses.
This affects 1.21.11, the clamp density function codec is defined as:
euj.c.fieldOf("input")meaning it uses the direct density function codec for
input, unlike other density functions which use the holder codec helper. This prevents"input"from accepting string references such as"minecraft:overworld/caves/spaghetti_roughness_function".