Define the recursion-prevention type from NRIOpts instead of *NRIOpts.
The named pointer type was handled correctly by the legacy JSON decoder,
but Go 1.27's new JSON implementation resolves NRIOpts.UnmarshalJSON
through it, causing infinite recursion and eventually a stack overflow.
Using a distinct type with NRIOpts as its underlying type removes the
method set while preserving the same fields and JSON representation.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>