sig
  type version = Version_1_0
  type creator = Barista_creator | Custom_creator of string * string
  type required_extension = {
    rext_short_name : string;
    rext_full_name : string;
    rext_spec_vendor : string;
    rext_spec_version : string;
    rext_impl_vendor_id : string;
    rext_impl_vendor : string;
    rext_impl_version : string;
    rext_impl_url : string;
  }
  type provided_extension = {
    pext_name : string;
    pext_impl_title : string;
    pext_impl_version : string;
    pext_impl_vendor : string;
    pext_impl_vendor_id : string;
    pext_spec_title : string;
    pext_spec_version : string;
    pext_spec_vendor : string;
  }
  type entry = {
    entry_path : string;
    entry_type : string option;
    entry_bean : bool option;
    entry_sealed : bool;
  }
  type t = {
    version : Manifest.version;
    creator : Manifest.creator;
    sealed : bool;
    main_class : Name.for_class option;
    class_path : string list;
    extensions : Manifest.required_extension list;
    extension : Manifest.provided_extension option;
    entries : Manifest.entry list;
  }
  val path_in_archive : string
  val default : Manifest.t
  val to_lines : Manifest.t -> string list
  val to_string : Manifest.t -> string
end