Same platform, same contracts.
Writing an extension means implementing the platform contracts,
not inventing your own data pipeline. You subscribe to the bus
for instrument readings, use the platform's identity layer for
authentication, write to the shared data store through the
platform data layer. The platform provides all of that.
The built-in apps — chartplotter, anchor watch, weather router,
logbook — are all extensions in the same sense. There is no
first-party versus third-party split in the architecture. The
difference is authorship, not privileges.
Sandboxed and signed.
Every extension runs in a sandbox. It declares its capabilities
upfront — which bus topics it reads, which it writes, whether
it needs cloud access, whether it needs storage. The owner
approves those capabilities at install time. An extension
cannot acquire permissions it did not declare.
Extensions are signed. The signing key is tied to the publisher
identity in the registry. If an update arrives and the signature
does not match the registered publisher, the hub will not install
it.
Source for every AGPL-licensed extension is verifiable.
The registry publishes the source hash alongside the binary.