Home

NotRequiredRequired

NotRequiredRequired is a term used in software design to describe a conditional validation constraint in which a field, parameter, or option is not required by default but becomes required under certain circumstances. The concept is used to balance flexibility with data integrity, allowing optional inputs that can be escalated to mandatory when related data is present or a particular mode is activated. The term signals a paradox: something that is not required, yet in practice must be provided in some contexts.

Origin and usage context: NotRequiredRequired emerged in discussions of form validation, API schemas, and configuration systems

Characteristics and implementation: The pattern applies to fields, parameters, or options that are optional by default

Examples: A user profile form may treat a “billingAddress” field as NotRequiredRequired, becoming mandatory if the

Reception and considerations: While useful for flexible data collection, NotRequiredRequired can confuse users if rules are

as
a
descriptive
label
for
conditional
requirements.
It
does
not
refer
to
a
language
feature
but
to
a
pattern
where
the
necessity
of
input
depends
on
other
inputs
or
settings.
It
is
most
common
in
domains
that
aim
to
collect
minimal
data
while
still
ensuring
complete
information
for
specific
workflows.
but
can
be
mandated
by
a
secondary
condition.
Implementations
typically
involve
conditional
validators,
dependent
rules,
or
schema
constructs
that
express
if-then-else
logic.
In
JSON
Schema,
for
example,
conditional
dependencies
or
if/then/else
constructs
can
enforce
a
field’s
presence
when
related
criteria
are
met.
In
user
interfaces,
dynamic
validation
messages
and
adaptive
UI
prompts
help
communicate
when
a
previously
optional
field
becomes
required.
user
checks
a
“hasBillingAddress”
box.
An
API
may
require
a
“secondaryEmail”
only
when
a
“requireSecondaryContact”
flag
is
true.
unclear.
Clear
messaging,
consistent
behavior,
and
thorough
testing
are
advised.
See
also:
conditional
validation,
dependent
fields,
required
vs
optional.