Don't apply defaults when fields are specified

Only keys/properties that have been explicitly specified will be taken into account, unless none are given at all - fixes #337