Public extension-definition repo for the schoolus extension (product:
School Portal), following the
ext-<id> repo-naming convention.
It holds the frozen wire shapes other repos need in order to talk to
School Portal — TypeSpec, matching Go DTOs, and the published TypeScript
contract package @sneat/extension-schoolus-contract. It contains no
School Portal implementation; that lives in
sneat-co/schoolus (private).
ext-schoolus/
├── typespec/ # api4schoolus.tsp — source of truth for the wire shape
└── backend/ # Go module github.com/sneat-co/ext-schoolus/backend
└── dto4schoolus/ # package dto4schoolus — the frozen request/response DTOs
└── frontend/ # @sneat/extension-schoolus-contract npm package
No TypeSpec emitters are configured — the .tsp, Go DTOs, and TypeScript
contract are hand-kept in sync (same convention as eventius/typespec and the
sneat-go/typespec directory).
Tagged sneat-extension-definition (with legacy sneat-extension-contract
during migration) — see all extension-definition repos at
github.com/sneat-co?q=topic:sneat-extension-definition.
Prototype scaffold — DTOs cover the six v1 endpoints (create school, public
school read, create class, enrol student, class timetable read, mark
attendance). See backstage
docs/superpowers/specs/2026-07-04-schoolus-prototype-design.md.