From 0eb49d98f702f1931727d9bf92ba2ed8f014a7ef Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 2 Feb 2026 19:57:48 +0000 Subject: [PATCH 1/2] feat: Add `positioning` to View Hierarchy --- text/0033-view-hierarchy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/text/0033-view-hierarchy.md b/text/0033-view-hierarchy.md index c0a91af7..bc590ae3 100644 --- a/text/0033-view-hierarchy.md +++ b/text/0033-view-hierarchy.md @@ -34,6 +34,7 @@ The attachment payload is a JSON structure containing the view hierarchy, here's "width": 100.0, "height": 100.0, "depth": 100.0, // if applies + "positioning": "relative|absolute", "x": 0.0, "y": 0.0, "z": 2.0, // if applies. @@ -50,6 +51,7 @@ Some remarks on the example: * `windows`: contains all visible windows, on mobile it's typically just one or two (e.g. if a dialog is open) * `type`: The fully qualified widget class name, this name may be obfuscated on certain platforms (e.g. Android release builds with proguard enabled) * `children` nests all child UI widgets, which then builds up the whole UI tree + * `positioning`: indicates how the element is positioned in relation to its parent. If not supplied, defaults to platform default. A typical Android/iOS view hierarchy for a single window consists of around 100-200 objects. Taking the attributes from the example above this generates a raw JSON file with a size of around 50KB. More complex view hierarchies, for example a Unity game, may hold 1000-2000 objects, producing a JSON file of around 500KB. From 1bb759e9841d9d25e4739b9feb7db74ea690643f Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 2 Feb 2026 20:25:18 +0000 Subject: [PATCH 2/2] oops --- text/0033-view-hierarchy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0033-view-hierarchy.md b/text/0033-view-hierarchy.md index bc590ae3..a6bbb25d 100644 --- a/text/0033-view-hierarchy.md +++ b/text/0033-view-hierarchy.md @@ -26,6 +26,7 @@ The attachment payload is a JSON structure containing the view hierarchy, here's ```json { "rendering_system": "compose", // or android_view_system, apple_uikit, apple_swiftui, unity, flutter, ... + "positioning": "relative|absolute", "windows": [ { "type": "com.example.ui.FancyButton", @@ -34,7 +35,6 @@ The attachment payload is a JSON structure containing the view hierarchy, here's "width": 100.0, "height": 100.0, "depth": 100.0, // if applies - "positioning": "relative|absolute", "x": 0.0, "y": 0.0, "z": 2.0, // if applies.