public function graph()
 {
     return parent::graph()->extend(['GraphObjectGrandChildWithCallbacks'])->properties(['childValueStr' => Type::String()->handler(function ($data, $name, $scenario) {
         if ($scenario === self::$override_scenario) {
             return $scenario . $name . $data;
         }
         return null;
     })->expected(array('child_val_str'))]);
 }
 public function graph()
 {
     return Entity::graph(['GraphObjectNest'])->properties(['child' => Type::Object(GraphObjectChild::create()), 'ownProperty' => Type::String()]);
 }
 public function graph()
 {
     return Entity::graph(['GraphObjectStep'])->properties(['nested' => Type::Object(GraphObjectNest::create()), 'child' => Type::Object(GraphObjectChild::create()), 'list' => Type::Object(GraphObjectList::create()), 'property' => Type::String()->expected(array('someProperty')), 'anotherProperty' => Type::Integer()->expected(array('someOtherProperty'))]);
 }
 public function graph()
 {
     return Entity::graph(['GraphObjectNestedData'])->properties(['_id' => Type::Integer()->bindTo(['id']), 'integer' => Type::Integer()->bindTo(['flatNest.integer']), 'array' => Type::FlatArray()->bindTo(['flatNest.array']), 'anotherInteger' => Type::Integer()->expected(['flatNest.nest.integer']), 'base' => Type::Object(GraphObjectBase::create())->expected(['objectNest.base']), 'child' => Type::Object(GraphObjectChild::create())->bindTo(['objectNest.nest.child']), 'aProperty' => Type::Integer()->bindTo(['preferedproperty'])]);
 }