(** A celebration. Parameterised by the rite's rank type only. *) type 'r t = { slug : Slug.t; names : Names.t; rank : 'r; colour : Colour.t; subject : Subject.t; citations : Citation.t list; layer : string; } [@@deriving sexp] (** [subject] defaults to [Subject.Temporal], [names] to empty, [citations] to []. *) val make : slug:Slug.t -> ?names:Names.t -> rank:'r -> colour:Colour.t -> ?subject:Subject.t -> ?citations:Citation.t list -> layer:string -> unit -> 'r t