sig   module Variant :     sig       module Map :         sig           type t = { _ref : string; type_value : string; }           val _ref :             (GapiDiscoveryV1Model.JsonSchema.Variant.Map.t, string)             GapiLens.t           val type_value :             (GapiDiscoveryV1Model.JsonSchema.Variant.Map.t, string)             GapiLens.t           val empty : GapiDiscoveryV1Model.JsonSchema.Variant.Map.t           val render :             GapiDiscoveryV1Model.JsonSchema.Variant.Map.t ->             GapiJson.json_data_model list           val parse :             GapiDiscoveryV1Model.JsonSchema.Variant.Map.t ->             GapiJson.json_data_model ->             GapiDiscoveryV1Model.JsonSchema.Variant.Map.t         end       type t = {         discriminant : string;         map : GapiDiscoveryV1Model.JsonSchema.Variant.Map.t list;       }       val discriminant :         (GapiDiscoveryV1Model.JsonSchema.Variant.t, string) GapiLens.t       val map :         (GapiDiscoveryV1Model.JsonSchema.Variant.t,          GapiDiscoveryV1Model.JsonSchema.Variant.Map.t list)         GapiLens.t       val empty : GapiDiscoveryV1Model.JsonSchema.Variant.t       val render :         GapiDiscoveryV1Model.JsonSchema.Variant.t ->         GapiJson.json_data_model list       val parse :         GapiDiscoveryV1Model.JsonSchema.Variant.t ->         GapiJson.json_data_model -> GapiDiscoveryV1Model.JsonSchema.Variant.t     end   module Annotations :     sig       type t = { required : string list; }       val required :         (GapiDiscoveryV1Model.JsonSchema.Annotations.t, string list)         GapiLens.t       val empty : GapiDiscoveryV1Model.JsonSchema.Annotations.t       val render :         GapiDiscoveryV1Model.JsonSchema.Annotations.t ->         GapiJson.json_data_model list       val parse :         GapiDiscoveryV1Model.JsonSchema.Annotations.t ->         GapiJson.json_data_model ->         GapiDiscoveryV1Model.JsonSchema.Annotations.t     end   type t = {     _ref : string;     additionalProperties : GapiDiscoveryV1Model.JsonSchema.t option;     annotations : GapiDiscoveryV1Model.JsonSchema.Annotations.t;     default : string;     description : string;     enum : string list;     enumDescriptions : string list;     format : string;     id : string;     items : GapiDiscoveryV1Model.JsonSchema.t option;     location : string;     maximum : string;     minimum : string;     pattern : string;     properties : (string * GapiDiscoveryV1Model.JsonSchema.t) list;     readOnly : bool;     repeated : bool;     required : bool;     _type : string;     variant : GapiDiscoveryV1Model.JsonSchema.Variant.t;   }   val _ref : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val additionalProperties :     (GapiDiscoveryV1Model.JsonSchema.t,      GapiDiscoveryV1Model.JsonSchema.t option)     GapiLens.t   val annotations :     (GapiDiscoveryV1Model.JsonSchema.t,      GapiDiscoveryV1Model.JsonSchema.Annotations.t)     GapiLens.t   val default : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val description : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val enum : (GapiDiscoveryV1Model.JsonSchema.t, string list) GapiLens.t   val enumDescriptions :     (GapiDiscoveryV1Model.JsonSchema.t, string list) GapiLens.t   val format : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val id : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val items :     (GapiDiscoveryV1Model.JsonSchema.t,      GapiDiscoveryV1Model.JsonSchema.t option)     GapiLens.t   val location : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val maximum : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val minimum : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val pattern : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val properties :     (GapiDiscoveryV1Model.JsonSchema.t,      (string * GapiDiscoveryV1Model.JsonSchema.t) list)     GapiLens.t   val readOnly : (GapiDiscoveryV1Model.JsonSchema.t, bool) GapiLens.t   val repeated : (GapiDiscoveryV1Model.JsonSchema.t, bool) GapiLens.t   val required : (GapiDiscoveryV1Model.JsonSchema.t, bool) GapiLens.t   val _type : (GapiDiscoveryV1Model.JsonSchema.t, string) GapiLens.t   val variant :     (GapiDiscoveryV1Model.JsonSchema.t,      GapiDiscoveryV1Model.JsonSchema.Variant.t)     GapiLens.t   val empty : GapiDiscoveryV1Model.JsonSchema.t   val render :     GapiDiscoveryV1Model.JsonSchema.t -> GapiJson.json_data_model list   val parse :     GapiDiscoveryV1Model.JsonSchema.t ->     GapiJson.json_data_model -> GapiDiscoveryV1Model.JsonSchema.t   val to_data_model :     GapiDiscoveryV1Model.JsonSchema.t -> GapiJson.json_data_model   val of_data_model :     GapiJson.json_data_model -> GapiDiscoveryV1Model.JsonSchema.t end