anchor.diff:  + 1: (DeckWithCount1)
   + 2: (DeckWithCount2)
   
  +### TipCollection (array)
  ++ 0: (Tip0)
  ++ 1: (Tip1)
  ++ 2: (Tip2)
  +
  +### TagCollection (array)
  ++ 0: (Tag0)
  ++ 1: (Tag1)
  ++ 2: (Tag2)
  +
   ## BadRequestResponse (object)
   + code: `E001` (string, required) - TODO sample error code
   + message: `Id cannot be null` (string, required) - TODO sample error message - human readable
positive.code:  - document HTTP 400 bad request response
  ## 04/03/2016 arka
   - create unique objects for collections
  
  # TODO
  - Document CRUD for stat
  
negative.code: 
  + Parameters
      + deckId: `1233-0000-0000-000000000001` (string, required) - deck UUID which contain flashcard
      + flashcardId: `1233-0000-0000-000000000001` (string, required) - flashcard UUID to delete
  
  + Response 200
  
  # Group Tip
  
  ## Tips [/decks/{deckId}/flashcards/{flashcardId}/tips]
  
  ### Create new Tip [POST]
  
  + Request (application/json)
  
      + Attributes (TipWithoutId)
  
  + Response 201 (application/json)
  
      This response is returned when tip was created.
      
      + Headers
  
              Access-Control-Expose-Headers: Location
              Location: /decks/1111-0000-0000-000000000001/flashcards/1111-0000-0000-000000000002/tips/1111-0000-0000-000000000003
  
      + Attributes (Tip)
  
  ### Get Tip by ID [GET /decks/{deckId}/flashcards/{flashcardId}/tips/{tipId}]
  
  + Response 200 (application/json)
      + Attributes (Tip)
  
  ### List all Tips [GET]
  
  + Response 200 (application/json)
      + Attributes (TipCollection)
  
  ### Update Tip [PUT /decks/{deckId}/flashcards/{flashcardId}/tips/{tipId}]
  
  + Parameters
      
      + deckId: `1233-0000-0000-000000000001` (string, required) - deck UUID which contain flashcard
      + flashcardId: `1233-0000-0000-000000000001` (string, required) - flashcard UUID which contain tip
      + tipId: `1233-0000-0000-000000000001` (string, required) - tip UUID to update
  
  + Request (application/json)
  
      + Attributes (TipWithoutId)
  
  + Response 200 (application/json)
  
      This response is returned when tip was updated.
      
      + Attributes (Tip)
  
  ### Remove Tip [DELETE /decks/{deckId}/flashcards/{flashcardId}/tips/{tipId}]
  
  + Parameters
      + deckId: `1233-0000-0000-000000000001` (string, required) - deck UUID which contain flashcard
      + flashcardId: `1233-0000-0000-000000000001` (string, required) - flashcard UUID which contain tip
      + tipId: `1233-0000-0000-000000000001` (string, required) - tip UUID to delete
  + Response 200
  
  # Group Tag
  
  ## Tags [/decks/{deckId}/tags]
  
  ### Create new Tag [POST]
  
  + Request (application/json)
  
      + Attributes (TagWithoutId)
  
  + Response 201 (application/json)
  
      This response is returned when tag was created.
      
      + Headers
  
              Access-Control-Expose-Headers: Location
              Location: /decks/1111-0000-0000-000000000001/tags/1111-0000-0000-000000000002
  
      + Attributes (Tag)
  
  ### Get Tag by ID [GET /decks/{deckId}/tags/{tagId}]
  
  + Response 200 (application/json)
      + Attributes (Tag)
  
  ### List all Tags [GET]
  
  + Response 200 (application/json)
      + Attributes (TagCollection)
  
  ### Update Tag [PUT /decks/{deckId}/tags/{tagId}]
  
  + Parameters
      
      + deckId: `1233-0000-0000-000000000001` (string, required) - deck UUID which contain tag
      + tagId: `1233-0000-0000-000000000001` (string, required) - tag UUID to update
  
  
  + Request (application/json)
  
      + Attributes (TagWithoutId)
  
  + Response 200 (application/json)
  
      This response is returned when tag was updated.
      
      + Attributes (Tag)
  
  ### Remove Tag [DELETE /decks/{deckId}/tags/{tagId}]
  
  + Parameters
      + deckId: `1233-0000-0000-000000000001` (string, required) - deck UUID which contain tag
      + tagId: `1233-0000-0000-000000000001` (string, required) - tag UUID to delete
  
  + Response 200
  
  
  # Data Structures
  
  