sig
  type t = {
    id : string;
    name : string;
    shortDescription : Sarif.Message.t;
    fullDescription : Sarif.Message.t;
    messageStrings : Sarif.Additional_properties.t;
    richMessageStrings : Sarif.Additional_properties.t;
    configuration : Sarif.RuleConfiguration.t;
    helpUri : string;
    properties : Sarif.Properties.t;
  }
  val to_yojson : Sarif.Rule.t -> Yojson.Safe.t
  val of_yojson :
    Yojson.Safe.t -> Sarif.Rule.t Ppx_deriving_yojson_runtime.error_or
  val _ : Yojson.Safe.t -> Sarif.Rule.t Ppx_deriving_yojson_runtime.error_or
  val default : Sarif.Rule.t
  val create :
    id:string ->
    ?name:string ->
    ?shortDescription:Sarif.Message.t ->
    ?fullDescription:Sarif.Message.t ->
    ?messageStrings:Sarif.Additional_properties.t ->
    ?richMessageStrings:Sarif.Additional_properties.t ->
    ?configuration:Sarif.RuleConfiguration.t ->
    ?helpUri:string -> ?properties:Sarif.Properties.t -> unit -> Sarif.Rule.t
end