fixed required context to say required
metaprogramming to condense the specs
do not validate parameter if required and not present
fixed broken specs that were failing with "items[key] is missing"