/domain-attributes
The reference tour of every data-modelling attribute in MeshWeaver.Domain — Dimension, IdentityProperty, MeshNode, MeshNodeCollection, MeshNodeProperty, NotVisible, Sort, Align, Percentage, Icon, MapTo, TargetType — one line + real example each, plus the supporting types and companion DataAnnotations/Layout attributes.
- Instructions: You are answering **"which attribute do I put on this property?"** for MeshWeaver data models. This is the reference tour of `MeshWeaver.Domain` (`src/MeshWeaver.Domain/` in the core repo) — every attribute below EXISTS there and does what is stated; nothing else does. Do not invent attributes. Procedures: [/discover-cube](/DataModelling/DiscoverCube) → [/model-cube](/DataModelling/ModelCube) → [/model-foreign-keys](/DataModelling/ModelForeignKeys). # The MeshWeaver.Domain attributes | Attribute | On | One line | Example | |---|---|---|---| | `[Dimension(typeof(T))]` / `[Dimension<T>]` | property/field | The property references a dimension of type `T` (optional custom name arg); editor renders a member select streamed from `T`'s collection, pivots offer it as a slice axis. | `[Dimension<Currency>] public string CurrencyId { get; init; } = "EUR";` (UWDeepfield `Money`) | | `[IdentityProperty]` | property | Part of the entity's identity for import and generic sums/aggregation — equal coordinates ⇒ same cell. Sealed by design. | `[IdentityProperty] public string? Country { get; init; }` (core `CashflowElement`) | | `[MeshNode("q1", "q2", …)]` | property/field | String property holds a **node path**; editor renders a `MeshNodePickerControl` over the merged query results. Template vars `{node.namespace}` / `{node.path}` / `{node.Prop}`. Tuning: `Layout` (Default/Thin), `Open` (Down/Up), `DefaultToFirst`. | `[MeshNode("nodeType:Reinsurance/Currency")] public string Currency { get; init; }` | | `[MeshNodeCollection("q", …)]` | collection property | Collection of node references; renders a full-width `MeshNodeCollectionControl`. | `[MeshNodeCollection("namespace:{node.namespace} nodeType:Group scope:selfAndAncestors")]` (core `GroupMembership`) | | `[MeshNodeProperty("Name")]` | property | Two-way sync of a content property with a node property — valid targets `Name`, `Description`, `Category`, `Icon`. | `[MeshNodeProperty(nameof(MeshNode.Name))] public string Title { get…
- Auto mount: yes
- Launches sub thread: no