public function finalize() : Values
    {
        /* @var input\Parameter $parameter */
        foreach ($this->definitions as $name => $parameter) {
            if (isset($this->items[$name])) {
                continue;
            }

            // In the case of Parameters which do not accept values (ie. optional flags), we explicitly default them
            // to a boolean false, opposed to a boolean true when they are actually set in input.
            $this->items[$name] = ($value = $parameter->getValue()) ? $value->getDefault() : false;
        }

        return $this;
    }