diff --git a/fabric/item/ontology/contextualization/1.0.0/schema.json b/fabric/item/ontology/contextualization/1.0.0/schema.json
new file mode 100644
index 00000000..02ccec3c
--- /dev/null
+++ b/fabric/item/ontology/contextualization/1.0.0/schema.json
@@ -0,0 +1,81 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/contextualization/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "contextualization definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The unique id of the contextualization"
+ },
+ "dataBindingTable": {
+ "$ref": "#/definitions/LakehouseTableDataBindingProperties"
+ },
+ "sourceKeyRefBindings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyRefBinding"
+ },
+ "description": "Bindings from source columns to target properties"
+ },
+ "targetKeyRefBindings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyRefBinding"
+ },
+ "description": "Bindings from target columns to target properties"
+ }
+ },
+ "definitions": {
+ "LakehouseTableDataBindingProperties": {
+ "type": "object",
+ "properties": {
+ "sourceType": {
+ "type": "string",
+ "const": "LakehouseTable",
+ "description": "The sourceType of the Data Binding"
+ },
+ "workspaceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The id of the workspace where the customer's lakehouse table is located"
+ },
+ "itemId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "ArtifactId of the customer's lakehouse"
+ },
+ "sourceTableName": {
+ "type": "string",
+ "description": "The name of the data table from the lakehouse"
+ },
+ "sourceSchema": {
+ "type": "string",
+ "description": "The schema of the data table"
+ }
+ },
+ "required": ["sourceType", "workspaceId", "itemId", "sourceTableName"]
+ },
+ "KeyRefBinding": {
+ "type": "object",
+ "properties": {
+ "sourceColumnName": {
+ "type": "string",
+ "description": "The name of the source column"
+ },
+ "targetPropertyId": {
+ "type": "string",
+ "description": "The target property identifier"
+ }
+ },
+ "required": ["sourceColumnName", "targetPropertyId"]
+ }
+ }
+}
\ No newline at end of file
diff --git a/fabric/item/ontology/dataBinding/1.0.0/schema.json b/fabric/item/ontology/dataBinding/1.0.0/schema.json
new file mode 100644
index 00000000..93eab327
--- /dev/null
+++ b/fabric/item/ontology/dataBinding/1.0.0/schema.json
@@ -0,0 +1,169 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/dataBinding/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "data binding definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique id of the data binding"
+ },
+ "dataBindingConfiguration": {
+ "$ref": "#/definitions/DataBindingConfiguration",
+ "description": "Configuration specific to the kind of data binding"
+ }
+ },
+ "required": ["id", "dataBindingConfiguration"],
+ "definitions": {
+ "DataBindingConfiguration": {
+ "type": "object",
+ "properties": {
+ "dataBindingType": {
+ "type": "string",
+ "enum": ["TimeSeries", "NonTimeSeries"],
+ "description": "The type of data binding"
+ },
+ "timestampColumnName": {
+ "type": "string",
+ "description": "Only required if dataBindingType is TimeSeries. This is the name of the timestamp column from the data table"
+ },
+ "propertyBindings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityTypePropertyBinding"
+ },
+ "description": "The bindings from source columns to entity type properties"
+ },
+ "sourceTableProperties": {
+ "description": "Data source table properties"
+ }
+ },
+ "required": ["dataBindingType", "sourceTableProperties"],
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "dataBindingType": {
+ "const": "TimeSeries"
+ }
+ }
+ },
+ "then": {
+ "required": ["timestampColumnName"],
+ "properties": {
+ "sourceTableProperties": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/LakehouseTableDataBindingProperties"
+ },
+ {
+ "$ref": "#/definitions/EventhouseTableDataBindingProperties"
+ }
+ ]
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "dataBindingType": {
+ "const": "NonTimeSeries"
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "sourceTableProperties": {
+ "$ref": "#/definitions/LakehouseTableDataBindingProperties"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "EntityTypePropertyBinding": {
+ "type": "object",
+ "properties": {
+ "sourceColumnName": {
+ "type": "string",
+ "description": "The name of the source column in the data table"
+ },
+ "targetPropertyId": {
+ "type": "string",
+ "description": "The target property id in the entity type"
+ }
+ },
+ "required": ["sourceColumnName", "targetPropertyId"]
+ },
+ "LakehouseTableDataBindingProperties": {
+ "type": "object",
+ "properties": {
+ "sourceType": {
+ "type": "string",
+ "const": "LakehouseTable",
+ "description": "The sourceType of the Data Binding"
+ },
+ "workspaceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The id of the workspace where the customer's lakehouse table is located"
+ },
+ "itemId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "ArtifactId of the customer's lakehouse"
+ },
+ "sourceTableName": {
+ "type": "string",
+ "description": "The name of the data table from the lakehouse"
+ },
+ "sourceSchema": {
+ "type": "string",
+ "description": "The schema of the data table"
+ }
+ },
+ "required": ["sourceType", "workspaceId", "itemId", "sourceTableName"]
+ },
+ "EventhouseTableDataBindingProperties": {
+ "type": "object",
+ "properties": {
+ "sourceType": {
+ "type": "string",
+ "const": "KustoTable",
+ "description": "The sourceType of the Data Binding"
+ },
+ "workspaceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The id of the workspace where the customer's eventhouse is located"
+ },
+ "itemId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "ArtifactId of the customer's eventhouse"
+ },
+ "clusterUri": {
+ "type": "string",
+ "description": "The URL to the Kusto cluster"
+ },
+ "databaseName": {
+ "type": "string",
+ "description": "The name of the database in the Kusto cluster"
+ },
+ "sourceTableName": {
+ "type": "string",
+ "description": "The name of the source table in the Kusto cluster"
+ }
+ },
+ "required": ["sourceType", "workspaceId", "itemId", "clusterUri", "databaseName", "sourceTableName"]
+ }
+ }
+}
\ No newline at end of file
diff --git a/fabric/item/ontology/document/1.0.0/schema.json b/fabric/item/ontology/document/1.0.0/schema.json
new file mode 100644
index 00000000..7ad10005
--- /dev/null
+++ b/fabric/item/ontology/document/1.0.0/schema.json
@@ -0,0 +1,23 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/document/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "document definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "displayText": {
+ "type": "string",
+ "description": "The display text for the document"
+ },
+ "url": {
+ "type": "string",
+ "description": "The URL pointing to the document"
+ }
+ },
+ "required": ["url"]
+}
diff --git a/fabric/item/ontology/entityType/1.0.0/schema.json b/fabric/item/ontology/entityType/1.0.0/schema.json
new file mode 100644
index 00000000..6376e75c
--- /dev/null
+++ b/fabric/item/ontology/entityType/1.0.0/schema.json
@@ -0,0 +1,110 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/entityType/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "entity type definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "description": "Unique id of the entity type"
+ },
+ "namespace": {
+ "type": "string",
+ "const": "usertypes",
+ "description": "Namespace of the entity type should always be usertypes"
+ },
+ "baseEntityTypeId": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Unique id of the base entity type"
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,127}$",
+ "description": "Name of the entity type"
+ },
+ "entityIdParts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The properties (by id) that together uniquely identify an entity"
+ },
+ "displayNamePropertyId": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "The id of the property that should be used as the display name for the entity"
+ },
+ "namespaceType": {
+ "type": "string",
+ "const": "Custom",
+ "description": "NamespaceType of the entity type should always be Custom"
+ },
+ "visibility": {
+ "type": "string",
+ "const": "Visible",
+ "description": "Visibility of the entity type should always be Visible"
+ },
+ "properties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityTypeProperty"
+ },
+ "description": "List of entity type properties"
+ },
+ "timeseriesProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityTypeProperty"
+ },
+ "description": "List of entity type timeseries properties"
+ }
+ },
+ "required": ["id", "namespace", "name", "namespaceType"],
+ "definitions": {
+ "EntityTypeProperty": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique id of the entity type property"
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,127}$",
+ "description": "Name of the entity type property"
+ },
+ "redefines": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pointer to property inherited from base type that this property redefines"
+ },
+ "baseTypeNamespaceType": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "The namespace of the base entity type"
+ },
+ "valueType": {
+ "type": "string",
+ "enum": ["String", "Boolean", "DateTime", "Object", "BigInt", "Double"],
+ "description": "Describes the value type of the entity type property"
+ }
+ },
+ "required": ["id", "name", "valueType"]
+ }
+ }
+}
diff --git a/fabric/item/ontology/overviews/1.0.0/schema.json b/fabric/item/ontology/overviews/1.0.0/schema.json
new file mode 100644
index 00000000..33b18587
--- /dev/null
+++ b/fabric/item/ontology/overviews/1.0.0/schema.json
@@ -0,0 +1,143 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/overviews/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "overviews definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "widgets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DashboardWidget"
+ },
+ "description": "The widgets on the dashboard"
+ },
+ "settings": {
+ "$ref": "#/definitions/DashboardSettings",
+ "description": "The settings of the dashboard"
+ }
+ },
+ "definitions": {
+ "DashboardWidget": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Unique id of the widget"
+ },
+ "type": {
+ "type": "string",
+ "enum": ["lineChart", "barChart", "file", "graph", "liveMap"],
+ "description": "Type of widget"
+ },
+ "title": {
+ "type": "string",
+ "description": "The title of the widget"
+ },
+ "yAxisPropertyId": {
+ "type": "string",
+ "description": "The property to display on the y-axis. Include this field only if type is lineChart or barChart"
+ }
+ },
+ "required": ["id", "type"],
+ "if": {
+ "properties": {
+ "type": {
+ "enum": ["lineChart", "barChart"]
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "yAxisPropertyId": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DashboardSettings": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["fixedTime", "customTime"],
+ "description": "Type of DashboardSettings"
+ },
+ "interval": {
+ "type": "string",
+ "enum": ["OneMinute", "FiveMinutes", "FifteenMinutes", "ThirtyMinutes", "OneHour", "SixHours", "TwelveHours", "OneDay"],
+ "description": "Sample window values in seconds for the dashboard data"
+ },
+ "aggregation": {
+ "type": "string",
+ "enum": ["Average", "Count", "Maximum", "Minimum", "Sum", "LastKnownValue"],
+ "description": "Aggregation function for the dashboard data"
+ },
+ "fixedTimeRange": {
+ "type": "string",
+ "enum": ["Last30Minutes", "Last1Hour", "Last4Hours", "Last12Hours", "Last24Hours", "Last48Hours", "Last3Days", "Last7Days", "Last30Days"],
+ "description": "The fixed time range for the dashboard data. Include this field only if type is fixedTime"
+ },
+ "timeRange": {
+ "$ref": "#/definitions/DashboardTimeRange",
+ "description": "Time range for the dashboard data. Include this field only if type is customTime"
+ }
+ },
+ "required": ["type", "interval", "aggregation"],
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "type": {
+ "const": "fixedTime"
+ }
+ }
+ },
+ "then": {
+ "required": ["fixedTimeRange"],
+ "not": {
+ "required": ["timeRange"]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "type": {
+ "const": "customTime"
+ }
+ }
+ },
+ "then": {
+ "required": ["timeRange"],
+ "not": {
+ "required": ["fixedTimeRange"]
+ }
+ }
+ }
+ ]
+ },
+ "DashboardTimeRange": {
+ "type": "object",
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time for the custom time range"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "End time for the custom time range"
+ }
+ },
+ "required": ["startTime", "endTime"]
+ }
+ }
+}
diff --git a/fabric/item/ontology/relationshipType/1.0.0/schema.json b/fabric/item/ontology/relationshipType/1.0.0/schema.json
new file mode 100644
index 00000000..ed4b54dc
--- /dev/null
+++ b/fabric/item/ontology/relationshipType/1.0.0/schema.json
@@ -0,0 +1,54 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/ontology/relationshipType/1.0.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "relationship type definition",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string",
+ "description": "Unique id of the relationship type"
+ },
+ "namespace": {
+ "type": "string",
+ "const": "usertypes",
+ "description": "Namespace of the relationship type should always be usertypes"
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,127}$",
+ "description": "Name of the relationship type"
+ },
+ "namespaceType": {
+ "type": "string",
+ "const": "Custom",
+ "description": "NamespaceType of the relationship type should always be Custom"
+ },
+ "source": {
+ "$ref": "#/definitions/RelationshipEnd",
+ "description": "The relationship end that denotes the source"
+ },
+ "target": {
+ "$ref": "#/definitions/RelationshipEnd",
+ "description": "The relationship end that denotes the target"
+ }
+ },
+ "required": ["id", "namespace", "name", "namespaceType", "source", "target"],
+ "definitions": {
+ "RelationshipEnd": {
+ "type": "object",
+ "properties": {
+ "entityTypeId": {
+ "type": "string",
+ "description": "The entity type id of the relationship end that exists in the workspace"
+ }
+ },
+ "required": ["entityTypeId"]
+ }
+ }
+}
diff --git a/fabric/item/report/README.md b/fabric/item/report/README.md
index 944ee337..eb6a57af 100644
--- a/fabric/item/report/README.md
+++ b/fabric/item/report/README.md
@@ -1,5 +1,11 @@
# Releases
+## October 2025
+
+Documenting visual objects changes for new visuals and visual updates.
+
+- [visualContainer 2.3.0](./definition/visualContainer/CHANGELOG.md#2.3.0)
+
## August 2025
A new PBIR-aligned ThemeVersion definition for ThemeMetadata. Support for Translytical Apps.
diff --git a/fabric/item/report/definition/visualContainer/2.3.0/schema.json b/fabric/item/report/definition/visualContainer/2.3.0/schema.json
new file mode 100644
index 00000000..3fd0202f
--- /dev/null
+++ b/fabric/item/report/definition/visualContainer/2.3.0/schema.json
@@ -0,0 +1,309 @@
+{
+ "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.3.0/schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Visual container",
+ "description": "Defines a single visual or visual group on a report page.",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "description": "Defines the schema to use for an item.",
+ "type": "string",
+ "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/2.3.0/schema.json"
+ },
+ "name": {
+ "description": "A unique identifier for the visual across the whole page.",
+ "maxLength": 50,
+ "type": "string"
+ },
+ "position": {
+ "$ref": "#/definitions/VisualContainerPosition",
+ "description": "Defines where the visual is position on the page and how big it should be, along\nwith z-index (stacking) for that visual.\nAlso defines the order in which visuals are navigated when using just keyboard (tabOrder)."
+ },
+ "visual": {
+ "description": "Defines a chart to be shown inside of this container.",
+ "$ref": "../../visualConfiguration/2.2.0/schema-embedded.json"
+ },
+ "visualGroup": {
+ "description": "Defines that this container should be used as a grouping container.",
+ "$ref": "#/definitions/VisualGroupConfig"
+ },
+ "parentGroupName": {
+ "description": "Name of the parent group (visual container), if it is part of one.",
+ "type": "string"
+ },
+ "filterConfig": {
+ "description": "Filters that apply to all this visual - on top of the filters defined for the report and page.",
+ "$ref": "../../filterConfiguration/1.2.0/schema-embedded.json"
+ },
+ "isHidden": {
+ "description": "Marks the visual as hidden.",
+ "type": "boolean"
+ },
+ "annotations": {
+ "description": "Additional information to be saved (for example comments, readme, etc) for this visual.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Annotation"
+ }
+ },
+ "howCreated": {
+ "description": "Source of creation of this visual.",
+ "type": "string",
+ "anyOf": [
+ {
+ "const": "Default",
+ "description": "Used when it doesn't fall in any of the buckets below."
+ },
+ {
+ "const": "Copilot",
+ "description": "Created by copilot."
+ },
+ {
+ "const": "CheckboxTickedInFieldList",
+ "description": "Selecting data from field list."
+ },
+ {
+ "const": "DraggedToCanvas",
+ "description": "Dragging data from field list to the canvas."
+ },
+ {
+ "const": "VisualTypeIconClicked",
+ "description": "Clicking a specific visual icon in visualizations list."
+ },
+ {
+ "const": "DraggedToFieldWell",
+ "description": "Dragging data from field list to field wells."
+ },
+ {
+ "const": "InsertVisualButton",
+ "description": "Clicking the \"Insert visual\" button in ribbon."
+ },
+ {
+ "const": "WhatIfParameterControl",
+ "description": "Automatically by what-if parameter."
+ },
+ {
+ "const": "QnaAppBar",
+ "description": "Ask a question in app bar."
+ },
+ {
+ "const": "QnaDoubleClick",
+ "description": "Double clicking on the canvas to generate a Q&A visual."
+ },
+ {
+ "const": "QnaKeyboardShortcut",
+ "description": "Use keyboard shortcut for Q&A visual."
+ },
+ {
+ "const": "FieldParameterControl",
+ "description": "Automatically by field parameters."
+ },
+ {
+ "const": "CanvasBackgroundContextMenu",
+ "description": "Using on-object context menu for the canvas."
+ },
+ {
+ "const": "ContextMenuPaste",
+ "description": "By using paste from context manu."
+ },
+ {
+ "const": "CopyPaste",
+ "description": "By using copy paste."
+ },
+ {
+ "const": "SummarizeVisualContainer",
+ "description": "By using context menu Summarize."
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "$schema",
+ "name",
+ "position"
+ ],
+ "definitions": {
+ "VisualContainerPosition": {
+ "type": "object",
+ "properties": {
+ "x": {
+ "description": "Horizontal position of the left edge of the visual.\nShould be between 0 and width of the containing page.",
+ "type": "number"
+ },
+ "y": {
+ "description": "Vertical position of the top edge of the visual.\nShould be between 0 and height of the containing page.",
+ "type": "number"
+ },
+ "z": {
+ "description": "Defines the stacking order for the visual.\nHigher z-index visuals are shown on top of the lower ones.",
+ "type": "number"
+ },
+ "height": {
+ "description": "Height of the visual.\ny + height should be less than the height of the containing page.",
+ "type": "number"
+ },
+ "width": {
+ "description": "Width of the visual.\nx + width should be less than the width of the containing page.",
+ "type": "number"
+ },
+ "tabOrder": {
+ "description": "Defines the selection order for this visual when using keyboard (tab key)\nto navigate the visuals on the containing page.",
+ "type": "number"
+ },
+ "angle": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "height",
+ "width",
+ "x",
+ "y"
+ ]
+ },
+ "VisualGroupConfig": {
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "Display name for the group.",
+ "type": "string"
+ },
+ "groupMode": {
+ "$ref": "#/definitions/GroupLayoutMode",
+ "description": "Defines how the visuals are organized inside this group."
+ },
+ "objects": {
+ "description": "Specifies the formatting to be set for different \"objects\" of this group.",
+ "$ref": "#/definitions/VisualGroupFormattingObjects"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "displayName",
+ "groupMode"
+ ]
+ },
+ "GroupLayoutMode": {
+ "type": "string",
+ "anyOf": [
+ {
+ "const": "ScaleMode",
+ "description": "Visuals are scaled as group resizes to preserve the aspect ratio and avoid scrolling."
+ },
+ {
+ "const": "ScrollMode",
+ "description": "Visuals are not resized, if the containing box for group is smaller than the space\nneeded for visuals, then scrollbar is added."
+ }
+ ]
+ },
+ "VisualGroupFormattingObjects": {
+ "type": "object",
+ "properties": {
+ "background": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "selector": {
+ "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.",
+ "$ref": "../../formattingObjectDefinitions/1.4.0/schema.json#/definitions/Selector"
+ },
+ "properties": {
+ "$ref": "../../visualConfiguration/2.2.0/schema-embedded.json#/definitions/Background",
+ "description": "Describes the properties of the object to apply formatting changes to."
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "properties"
+ ]
+ }
+ },
+ "lockAspect": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "selector": {
+ "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.",
+ "$ref": "../../formattingObjectDefinitions/1.4.0/schema.json#/definitions/Selector"
+ },
+ "properties": {
+ "$ref": "../../visualConfiguration/2.2.0/schema-embedded.json#/definitions/LockAspect",
+ "description": "Describes the properties of the object to apply formatting changes to."
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "properties"
+ ]
+ }
+ },
+ "general": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "selector": {
+ "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.",
+ "$ref": "../../formattingObjectDefinitions/1.4.0/schema.json#/definitions/Selector"
+ },
+ "properties": {
+ "$ref": "#/definitions/VisualGroupGeneralFormattingObjects",
+ "description": "Describes the properties of the object to apply formatting changes to."
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "properties"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VisualGroupGeneralFormattingObjects": {
+ "type": "object",
+ "properties": {
+ "x": {},
+ "y": {},
+ "width": {},
+ "height": {},
+ "altText": {}
+ },
+ "additionalProperties": false
+ },
+ "Annotation": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Unique name for the annotation.",
+ "type": "string"
+ },
+ "value": {
+ "description": "A value for this annotation.",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "name",
+ "value"
+ ]
+ }
+ },
+ "oneOf": [
+ {
+ "required": [
+ "visual"
+ ]
+ },
+ {
+ "required": [
+ "visualGroup"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/fabric/item/report/definition/visualContainer/CHANGELOG.md b/fabric/item/report/definition/visualContainer/CHANGELOG.md
index c104bc02..b380be03 100644
--- a/fabric/item/report/definition/visualContainer/CHANGELOG.md
+++ b/fabric/item/report/definition/visualContainer/CHANGELOG.md
@@ -1,5 +1,13 @@
# Visual Container Versions
+### 2.3.0
+
+Released in: October 2025
+Notes:
+- Table "Grow to fit"
+- Button slicer GA
+- Card visual GA
+
### 2.2.0
Released in: August 2025