Public contract surface for the calendarius extension, per the
ext-<id> convention
and the extension backend architecture standard.
Depends only on the standard library — never on another extension or the
calendarius implementation.
Created 2026-07-09 to close the compliance gap recorded in the ecosystem review
(backstage/spec/research/ecosystem-review-2026-07/): calendarius was the only
widely-consumed extension without a definition repo, so consumers (e.g. the
eventius adapter in sneat-go) imported calendarius/backend implementation
types directly.
backend/— Go modulegithub.com/sneat-co/ext-calendarius/backendcalendariusmodels— shared vocabulary:HappeningSpec,HappeningBrieffacade4calendarius—HappeningsFacade, the interface consumers depend on; the host (sneat-go) implements it once over the calendarius implementation facade and injects it into consuming extensions
frontend/— Nx workspace whoseext-calendarius-contractproject publishes@sneat/extension-calendarius-contract. This repository is its sole source.
- ✅ Seed vocabulary + facade interface (this repo,
backend/v0.x). sneat-go/pkg/modules/eventiusadapter: implementfacade4calendarius.HappeningsFacadeand keep the eventius port satisfied by it; new calendar consumers (bookius, school-portal) depend on this interface instead of writing new ports.- Extract further shared DTOs from
calendarius/backend/dto4calendariushere as second consumers appear (dbo4calendariusstorage types stay private — see the standard's moves-vs-stays rule). - ✅ Move
@sneat/extension-calendarius-contractfromsneat-libsinto this repository. The implementation packages live incalendarius/frontend.