message SlowChild {
    optional string id = 1;
}

/**
 * @Indexed
 */
message FastChild {

    /**
      * @Field(store = Store.YES)
      */
    optional string id = 1;
}

/**
 * @Indexed
 */
message FieldLessChild {

    optional string id = 1;
}

/**
 * @Indexed
 */
message Parent {

    optional string id = 1;

    /**
     * @Field(store = Store.YES)
     */
    optional string name = 2;

    repeated SlowChild slowChildren = 3;

    /**
     * @Field(store = Store.YES)
     */
    repeated FastChild fastChildren = 4;

    /**
    * @Field(store = Store.YES)
    */
    repeated FieldLessChild fieldLessChildren = 5;

    message NotIndexedWithFieldChild {
      /**
        * @Field(store = Store.YES)
        */
      optional string id = 1;
    }

    /**
      * @Field(store = Store.YES)
      */
    optional NotIndexedWithFieldChild notIndexedWithFieldChild = 6;
}
