I'm fairly new to the xAct project for Mathematica, but feel like I understand fairly well how to define an arbitrary tensor using xTensor. My problem is that I want to define a tensor that is composed of other tensors. Specifically, I'm trying to construct an abstract tensor that looks like the following, $\mathcal{H}^{MN}=\left(\begin{array}{cc}g_{ij}-b_{ik}g^{kl}b_{lj}&&b_{ik}g^{kj}\\-g^{ik}b_{kj}&&g^{ij}\end{array}\right)$
This is known as the generalized metric in generalized geometry. Additionally, the indices $M,N$ take values from $1$ to $2D$, while the $i,j$ takes values from 1 to D. The $g_{ij}$ here corresponds to a normal Riemannian metric and the $b_{ij}$ is an antisymmetric matrix. The indices on the generalized metric would be raised and lowered using the O(D,D) invariant metric, $\eta^{MN}=\left(\begin{array}{cc}0&\mathbb{1}\\\mathbb{1}&0\end{array}\right)$.
From the xAct documentation, it isn't clear to me how (or even if) it is possible to abstractly define this using the built-in functions. Any tips or references to useful information would be much appreciated!