Ocean Bundle
1. Overview
Section titled “1. Overview”A Bundle is the complete, identifiable Ocean DSL project: the full set of DSL definitions — datatypes, APIs, databases, brokers, behavior, services, configuration, and deployment — along with non-DSL files, that together describe one system.
“Bundle” and “Ocean DSL project” refer to the same thing. Bundle is Ocean’s canonical term for a complete DSL project and the unit that carries its project-level identity.
A Bundle is identified by its @info section, defined by dsl.info.
2. Core Principle
Section titled “2. Core Principle”Every Ocean system is organized as one Bundle.
Bundle ├── @info (project identity) ├── @datatype definitions ├── @api / @broker / @database definitions ├── @expression / @fsm / @component definitions ├── @service definitions ├── @config / @vault definitions ├── @dashboard / @ui definitions └── @deploy definitionsA Bundle does not need to use every DSL construct. The DSL areas a Bundle may contain, and how they combine into a system, are defined by concept.system-design-model.
3. Bundle Identity
Section titled “3. Bundle Identity”A Bundle’s identity comes from its @info section: name, version, and an optional description.
Bundle └── @info ├── name ├── version └── descriptionA complete Bundle should contain one effective @info section and therefore one project-level identity. Incomplete or fragmentary DSL input may temporarily omit @info, as defined by dsl.info. The complete field syntax, cardinality, and validation rules for @info are defined by dsl.info and are not repeated here.
The Bundle’s @info version identifies the Bundle’s own definition. It is distinct from the version of any individual reusable item the Bundle publishes or consumes — see Section 5.
4. Bundle Composition
Section titled “4. Bundle Composition”A Bundle contains the local DSL definitions that make up its system: datatypes, APIs, databases, brokers, expressions, FSMs, components, services, configuration, vaults, dashboards, UI, and deployment definitions, as applicable.
A Bundle may also reuse definitions it does not own, through:
@import — bring in a selected reusable definition from the Ocean Repository or local Pre-baked Registry@include — statically compose a compatible same-section definition into the current fileThese reuse mechanisms, and the O./P. reference formats they resolve, are defined by concept.ocean-repository.
Bundle ├── local definitions └── reused definitions ├── O.<namespace>.<name>@<version> (Ocean Repository) └── P.<namespace>.<name>@<version> (local Pre-baked Registry)5. Bundle vs Reusable Repository Items
Section titled “5. Bundle vs Reusable Repository Items”A Bundle is a project. The definitions inside it are not automatically reusable outside it.
A definition authored inside a Bundle — a datatype, an expression, a service, and so on — may independently be published to the Ocean Repository as its own reusable item, with its own namespace, name, and version. That published identity is distinct from the Bundle’s own @info identity:
Bundle Published item @info: "Billing" @ 2.1.0 O.billing.InvoiceLogic@2.0.0Changing the Bundle’s version does not change the version of an item it publishes, and vice versa, unless the project’s own release policy links them.
6. Bundle vs Service
Section titled “6. Bundle vs Service”A Bundle may contain multiple services. @info identifies the Bundle as a whole; it does not identify, rename, or version any one service inside it.
Bundle: "Order Platform" @ 1.0.0 ├── OrderService ├── PaymentService └── NotificationServiceService-specific contracts, configuration, and deployment behavior belong to dsl.service and related references.
7. Example
Section titled “7. Example”A minimal Bundle for an inventory system, identified by its @info section:
@info
name: "Inventory Management"version: 1.0.0description: "Manages inventory and stock movements."The same Bundle typically contains further DSL definitions alongside @info:
Bundle: "Inventory Management" @ 1.0.0 ├── @info ├── @datatype Product, StockMovement ├── @database InventoryDb ├── @api InventoryApi ├── @service InventoryService └── @deploy InventoryDeploy8. Related Knowledge
Section titled “8. Related Knowledge”The Ocean Bundle concept is related to:
dsl.info— defines the@infosection that identifies a Bundle.concept.system-design-model— defines how the DSL constructs a Bundle contains model a system.concept.ocean-repository— defines how individual definitions within a Bundle may be published and reused independently of the Bundle’s own identity.dsl.import— imports a selected reusable definition into a Bundle.dsl.include— statically composes a compatible same-section definition into a Bundle’s current file.dsl.service— defines the deployable service boundaries a Bundle may contain.
These semantic relationships are declared in the document metadata.