Function prepareRecorderKitMakers prepare ( baggage , marshaller ) :  {       makeDurablePublishKit :  ( < T > ( options ?:  {           valueDurability :  undefined  |  "mandatory" ;       } )  =>  PublishKit < T > ) ;       makeERecorderKit :  ( < T > ( storageNodeP :  ERef < StorageNode > , valueShape ?:  TypedPattern < T > )  =>  EventualRecorderKit < T > ) ;       makeRecorder :  ( ( ... args :  [ publisher:  Publisher < unknown > ,  storageNode:  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ,  valueShape:  TypedPattern < any > ] )  =>  Guarded < {           getStorageNode ( ) :  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ;           getStoragePath ( ) :  Promise < string > ;           write ( value :  any ) :  Promise < void > ;           writeFinal ( value :  any ) :  Promise < void > ;       } > ) ;       makeRecorderKit :  ( < T > ( storageNode :  StorageNode  |  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > , valueShape ?:  TypedPattern < T > )  =>  RecorderKit < T > ) ;  } Parameters baggage : Baggage marshaller : ERef < {       fromCapData :  FromCapData < unknown > ;       serialize :  ToCapData < unknown > ;       toCapData :  ToCapData < unknown > ;       unserialize :  FromCapData < unknown > ;  } > Returns {       makeDurablePublishKit :  ( < T > ( options ?:  {           valueDurability :  undefined  |  "mandatory" ;       } )  =>  PublishKit < T > ) ;       makeERecorderKit :  ( < T > ( storageNodeP :  ERef < StorageNode > , valueShape ?:  TypedPattern < T > )  =>  EventualRecorderKit < T > ) ;       makeRecorder :  ( ( ... args :  [ publisher:  Publisher < unknown > ,  storageNode:  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ,  valueShape:  TypedPattern < any > ] )  =>  Guarded < {           getStorageNode ( ) :  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ;           getStoragePath ( ) :  Promise < string > ;           write ( value :  any ) :  Promise < void > ;           writeFinal ( value :  any ) :  Promise < void > ;       } > ) ;       makeRecorderKit :  ( < T > ( storageNode :  StorageNode  |  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > , valueShape ?:  TypedPattern < T > )  =>  RecorderKit < T > ) ;  }  make :  ( < T > ( options ?:  {       valueDurability :  undefined  |  "mandatory" ;  } )  =>  PublishKit < T > ) < T > ( options ? ) :  PublishKit < T > Parameters Optionaloptions : {       valueDurability :  undefined  |  "mandatory" ;  } value :  undefined  |  "mandatory" makeERecorder :  ( < T > ( storageNodeP :  ERef < StorageNode > , valueShape ?:  TypedPattern < T > )  =>  EventualRecorderKit < T > ) < T > ( storageNodeP , valueShape ? ) :  EventualRecorderKit < T > Parameters storageNodeP : ERef < StorageNode > OptionalvalueShape : TypedPattern < T > make :  ( ( ... args :  [ publisher:  Publisher < unknown > ,  storageNode:  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ,  valueShape:  TypedPattern < any > ] )  =>  Guarded < {       getStorageNode ( ) :  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ;       getStoragePath ( ) :  Promise < string > ;       write ( value :  any ) :  Promise < void > ;       writeFinal ( value :  any ) :  Promise < void > ;  } > ) ( ... args ) :  Guarded < {       getStorageNode ( ) :  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ;       getStoragePath ( ) :  Promise < string > ;       write ( value :  any ) :  Promise < void > ;       writeFinal ( value :  any ) :  Promise < void > ;  } > Parameters Rest... args : [ publisher:  Publisher < unknown > ,  storageNode:  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ,  valueShape:  TypedPattern < any > ] Returns Guarded < {       getStorageNode ( ) :  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > ;       getStoragePath ( ) :  Promise < string > ;       write ( value :  any ) :  Promise < void > ;       writeFinal ( value :  any ) :  Promise < void > ;  } >  make :  ( < T > ( storageNode :  StorageNode  |  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > , valueShape ?:  TypedPattern < T > )  =>  RecorderKit < T > ) < T > ( storageNode , valueShape ? ) :  RecorderKit < T > Parameters storageNode : StorageNode  |  DataOnly < StorageNode >  &  RemotableBrand < DataOnly < StorageNode > ,  StorageNode > OptionalvalueShape : TypedPattern < T > 
Convenience wrapper for DurablePublishKit and Recorder kinds.
NB: this defines two durable kinds. Must be called at most once per baggage.
makeRecorderKitis suitable for making a durableRecorderKitwhich can be held in Exo state.makeERecorderKitis for closures that must return asubscribersynchronously but can defer therecorder.