// Path: xpra-common/src/main/java/xpra/protocol/data/SizeConstraints.java
// public class SizeConstraints {
// 
//     public final int gravity;
//     public final int minimumWidth;
//     public final int minimumHeight;
// 
//     public SizeConstraints(int gravity, int minimumWidth, int minimumHeight) {
//         this.gravity = gravity;
//         this.minimumWidth = minimumWidth;
//         this.minimumHeight = minimumHeight;
//     }
// }


import xpra.protocol.data.SizeConstraints;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
    public int getParentId() {
        final Object value = meta.get("transient-for");
        if (value != null) {
            return asInt(value);
        }
        return NO_PARENT;
    }

    public Integer getAsInt(String key) {
        final Object value = meta.get(key);
        if (value != null) {
            return asInt(value);
        }
        return null;
    }

    public Set<String> getWindowTypes() {
        final Object value = meta.get(META_WINDOW_TYPE);
        if (value != null) {
            List<String> list = asStringList(value);
            return Collections.unmodifiableSet(new HashSet<>(list));
        }
        return Collections.emptySet();
    }

    public String getTitle() {
        return getAsString(META_TITLE);
    }

    @Nullable
// Path: xpra-common/src/main/java/xpra/protocol/data/SizeConstraints.java
// public class SizeConstraints {
// 
//     public final int gravity;
//     public final int minimumWidth;
//     public final int minimumHeight;
// 
//     public SizeConstraints(int gravity, int minimumWidth, int minimumHeight) {
//         this.gravity = gravity;
//         this.minimumWidth = minimumWidth;
//         this.minimumHeight = minimumHeight;
//     }
// }


// Path: xpra-common/src/main/java/xpra/protocol/packets/WindowMetadata.java
import xpra.protocol.data.SizeConstraints;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

    public int getParentId() {
        final Object value = meta.get("transient-for");
        if (value != null) {
            return asInt(value);
        }
        return NO_PARENT;
    }

    public Integer getAsInt(String key) {
        final Object value = meta.get(key);
        if (value != null) {
            return asInt(value);
        }
        return null;
    }

    public Set<String> getWindowTypes() {
        final Object value = meta.get(META_WINDOW_TYPE);
        if (value != null) {
            List<String> list = asStringList(value);
            return Collections.unmodifiableSet(new HashSet<>(list));
        }
        return Collections.emptySet();
    }

    public String getTitle() {
        return getAsString(META_TITLE);
    }

    @Nullable
    public SizeConstraints getSizeConstraints() {