#usda 1.0

def "Set"
{
    rel setRel = [
        </Set/PropInstance_1>,
        </Set/PropInstance_1/geom>,
        </Set/PropInstance_2>,
        </Set/PropInstance_2/geom>,
        </Set/PropNotAnInstance_1>,
        </Set/PropNotAnInstance_1/geom>
    ]

    int setAttr.connect = [
        </Set/PropInstance_1.foo>,
        </Set/PropInstance_1/geom.foo>,
        </Set/PropInstance_2.foo>,
        </Set/PropInstance_2/geom.foo>,
        </Set/PropNotAnInstance_1.foo>,
        </Set/PropNotAnInstance_1/geom.foo>
    ]

    def "PropInstance_1" (
        references = @./prop.usda@</Prop>
        instanceable = true
    )
    {
        rel propInstanceRel = [
            </Set/PropInstance_1/geom>,
            </Set/PropInstance_2/geom>,
            </Set/PropNotAnInstance_1/geom>
        ]

        int propInstanceAttr.connect = [
            </Set/PropInstance_1/geom.foo>,
            </Set/PropInstance_2/geom.foo>,
            </Set/PropNotAnInstance_1/geom.foo>
        ]

        over "geom"
        {
        }
    }

    def "PropInstance_2" (
        references = @./prop.usda@</Prop>
        instanceable = true
    )
    {
        rel propInstanceRel = [
            </Set/PropInstance_1/geom>,
            </Set/PropInstance_2/geom>,
            </Set/PropNotAnInstance_1/geom>
        ]

        int propInstanceAttr.connect = [
            </Set/PropInstance_1/geom.foo>,
            </Set/PropInstance_2/geom.foo>,
            </Set/PropNotAnInstance_1/geom.foo>
        ]

        over "geom"
        {
        }
    }

    def "PropNotAnInstance_1" (
        references = @./prop.usda@</Prop>
    )
    {
        over "geom"
        {
        }
    }
}
