<MySchema>.make to provide type safety when composing objects on the encoded side. This can be especially useful in nested objects.Schema.transform, the resulting schema no longer has .make, or .omit/.pick/.fields, which limits reusability. I'm also finding the same when I use Schema.Data to provide value equality (due to its underlying use of transform).Schema.Data also doesn't appear to be reflected in the returned type, so its possible to pass a nested object without creating it with Data.struct and you silently lose value equality as a result. It's not clear if any of this behaviour is 'by design' or an oversight. I'd be interested to understand this better, if anyone can explain.foo1 and foo2 are only equal by value if both objects are wrapped in Data.struct during initialisation. If I omit the Data.struct, there is no type safety warning and the equality will always fail (as the references are different)..make would still be available and ensure that the Schema.Data transform was applied to ensure that value equality was preserved. Am I just using this wrong?