最低限のデータリソースの管理方法について

音ゲーの譜面データを管理したいのですが、最適な方法がわからずアドバイスを求めに来ました。

GetNotesという譜面データを取得するインターフェースと、NoteFormatという発生タイミングと音の種類をまとめた構造体を作り、その配列を楽曲ごとにGetNotesを継承したBluePrintを作ろうとしています。
しかし、BluePrintを作ると最低でもActorとして座標などの余計な情報が含まってしまいます。

最低限の変数と関数だけを持ったBluePrintを作成することはできますか?
また、BluePrint以外でもStreamのように頭から順にデータを取り出せる管理法はありますか?

よろしくお願いします。