Navigation

Service

define { name; description?; package; capabilities; protocols?; config?; } builds a typed ServiceSpec and attaches an operations field holding the runtime-op program that materializes the service:

declareCapability(c1) … declareCapability(cN)   # one per category
declareProtocol(p1)   … declareProtocol(pM)     # one per protocol
declareService(svc)
materializeUnit(svc.name)

The eager compatibility check fires inside the underlying mb.operations.service smart constructor — invalid services cannot be constructed. compatibility and descriptor are re-exported from mb.descriptions.runtime for consumer convenience.

program is a shortcut: pass either a service value or the arguments to define, and receive an internalized builder program.