  The satellite Linus orbiting the main-belt asteroid (22) Kalliope exhibited
occultation and transit events in late 2021. A photometric campaign was
organized and observations were taken by the TRAPPIST-South, SPECULOOS-Artemis,
OWL-Net, and BOAO telescopes, with the goal to constrain models of this system.
Our dynamical model is complex, with multipoles (up to the order $\ell = 2$),
internal tides, and external tides. The model was constrained by astrometry
(spanning 2001--2021), occultations, adaptive-optics imaging, calibrated
photometry, as well as relative photometry. Our photometric model was
substantially improved. A new precise (${<}\,0.1\,{\rm mmag}$) light curve
algorithm was implemented, based on polygon intersections, which are computed
exactly -- by including partial eclipses and partial visibility of polygons.
Moreover, we implemented a `cliptracing' algorithm, based again on polygon
intersections, in which partial contributions to individual pixels are computed
exactly. Both synthetic light curves and synthetic images are then very smooth.
Based on our combined solution, we confirmed the size of Linus, $(28\pm
1)\,{\rm km}$. However, this solution exhibits some tension between the light
curves and the PISCO speckle-interferometry dataset. In most solutions, Linus
is darker than Kalliope, with the albedos $A_{\rm w} = 0.40$ vs. $0.44$. This
is confirmed on deconvolved images. A~detailed revision of astrometric data
allowed us to revise also the $J_2 \equiv -C_{20}$ value of Kalliope. Most
importantly, a~homogeneous body is excluded. For a differentiated body, two
solutions exist: low-oblateness ($C_{20} \simeq -0.12$), with a~spherical iron
core, and alternatively, high-oblateness ($C_{20} \simeq -0.22$) with an
elongated iron core. These correspond to the low- and high-energy collisions,
respectively, studied by means of SPH simulations in our previous work.
