Nimbus2の出力サービスを提供します。

出力するという概念を抽象化すると、「どこにどのように出力するか」でしょう。

「どのように出力するか」という概念を抽象化すると、順序性とマッピングが考えられます。
こういう順番で、この項目とこの項目を出力したいといった感じです。
この概念を抽象化したインタフェースがWritableRecordです。
ここで、任意のオブジェクトを出力するためには、任意のオブジェクトを入力として受け取って、 特定のフォーマットに従ったWritableRecordに変換する必要があります。
この概念を抽象化したインタフェースがWritableRecordFactoryです。

次は、このようにしてフォーマットされたWritableRecordを「どこに出力するか」となります。
その概念を抽象化したインタフェースがMessageWriterです。

さらに、これらの大きな２つの概念、「どこにどのように出力するか」をまとめて抽象化したインタフェースがCategoryです。

このパッケージでは、これらの概念を具体化したサービスを提供します。