Using Swashbuckle.AspNetCore in an ASP.NET Core webapp, we have response types like:

```cs
public class DateRange
{
    [JsonConverter(typeof(IsoDateConverter))]
    public DateTime StartDate {get; set;}

    [JsonConverter(typeof(IsoDateConverter))]
    public DateTime EndDate {get; set;}
}

```

When using Swashbuckle to emit the swagger API JSON, this becomes:

```
{ ...

  "DateRange": {
    "type": "object",
    "properties": {
      "startDate": {
        "format": "date-time",
        "type": "string"
      },
      "endDate": {
        "format": "date-time",
        "type": "string"
      }
    }
  }
...
}

```

The problem here is that `DateTime` is a value type, and can never be null; but the emitted Swagger API JSON doesn't tag the 2 properties as `required`. This behavior is the same for all other value types: int, long, byte, etc - they're all considered optional.

To complete the picture, we're feeding our Swagger API JSON to [dtsgenerator](https://www.npmjs.com/package/dtsgenerator) to generate typescript interfaces for the JSON response schema. e.g. the class above becomes:

```
export interface DateRange {
    startDate?: string; // date-time
    endDate?: string; // date-time
}

```

Which is clearly incorrect. After digging into this a little bit, I've concluded that dtsgenerator is doing the right thing in making non-required properties nullable in typescript. Perhaps the swagger spec needs explicit support for nullable vs required, but for now the 2 are conflated.

I'm aware that I can add a `[Required]` attribute to every value-type property, but this spans multiple projects and hundreds of classes, is redundant information, and would have to be maintained. All non-nullable value type properties cannot be null, so it seems incorrect to represent them as optional.

Web API, Entity Framework, and Json.net all understand that value type properties cannot be `null`; so a `[Required]` attribute is not necessary when using these libraries.

I'm looking for a way to automatically mark all non-nullable value types as required in my swagger JSON to match this behavior.