sig
  type t = {
    oasis_version : OASISVersion.t;
    plugin_versions : OASISVersion.t option OASISFeatures.MapPlugin.t;
    alpha_features : string list;
    beta_features : string list;
  }
  val create : OASISVersion.t -> string list -> string list -> t
  val of_package : OASISTypes.package -> t
  val add_plugin :
    OASISTypes.plugin_kind * OASISTypes.name * OASISVersion.t option ->
    t -> t
  val plugin_version :
    OASISTypes.plugin_kind -> OASISTypes.name -> t -> OASISVersion.t option
  val to_string : t -> string
end