ORE Studio Technical Spaces

Table of Contents

This document is the index of ORE Studio's physical space — the concrete instantiation of the MASD technical space hierarchy across every language ecosystem the product touches. It provides the linkage between MASD's abstract concepts (TS, Part, Facet, Archetype, Profile) and the actual components, directories, templates, and facet_catalogue.org entries that implement them.

A logical entity (a value such as currency) projects simultaneously into every enabled technical space — C++ domain + repository + Qt, SQL DDL + trigger, CMake build target — each producing its own physical artefacts via the facet transformation.

For the meta-model concepts behind this structure (meta-layer, meta-component, PMM, SRPP) see MASD.

Layer and component topology (system dimension)

The physical space has two orthogonal views:

  1. The TS→Part→Facet→Archetype dimension (codegen structure) — documented in this file and its per-TS companions.
  2. The Layer→Component dimension (system architecture) — documented in System Model and its sub-docs.

In MASD terms, the layers (foundation / infrastructure / domain / application) and components (ores.refdata.api, ores.qt.refdata, etc.) are physical-space instances of the meta-layer and meta-component concepts from the logical space. The two views are complementary: the system model shows who owns what; the TS model shows how it is generated.

ORE Studio technical spaces

Technical Space Codegen Facets Archetypes Detail
C++ 9 57 Domain, generator, repository, messaging, service, Qt, component, model types, table
SQL 3 ~26 Schema DDL, service users, reference data population
CMake 1 8 Component build targets (root, src variants, tests, modeling)
Assets 1 4 Qt Designer forms, PlantUML ER diagram, shell service vars
Doc 1 20 Agile docs, knowledge docs, skills, recipes, runbooks, entity models
Emacs Lisp ores.lisp, ores.compass — manually authored
Python ores.codegen — the generator itself
JavaScript ores.org-js — agile dashboard
XML / FPML ores.fpml — FPML financial product data

Physical Metamodel in ORE Studio

The PMM is instantiated by two complementary artefacts:

  • facet_catalogue.org — the profile catalogue, mapping every profile name to the facets it activates and the Mustache templates that belong to each; read directly by generator.py (no intermediate JSON).
  • projects/ores.codegen/library/templates/ — the archetype catalogue, where each .mustache file is one archetype within a facet. The directory layout mirrors the TS→Part→Facet hierarchy.

The literate template org files (cpp_domain.org, sql_schema.org, etc.) are the authored sources from which the .mustache artefacts are tangled. They document each archetype's SRPP inline, alongside the template code. The template library overview describes the three-level literate hierarchy (archetype ← facet doc ← group doc ← overview).

See also

  • MASD — the methodology that defines TS, Part, Facet, Archetype.
  • Physical Space — the MASD concept this document instantiates.
  • Technical Space — the concept behind each row in the table above.
  • Facet — the MASD facet concept this document instantiates.
  • Variability — the MASD variability concept (features, profiles, VMM).
  • Applied MASD — the applied overview, including the full ORE Studio facet catalogue with archetype counts.
  • ORE Studio Variability Model — facet_catalogue.org, model types, and profile activation in ORE Studio.
  • System Model — the layer/component dimension of the physical model.
  • ores.codegen — the code generator that performs the M2T transformations.

Emacs 29.1 (Org mode 9.6.6)