MySQL Many to Many with additional data in intermediary table
If we have Person and School and a Person can enroll in zero to many schools and a School can enroll one to many people the many-to-many relation exists, but we would refer to the resulting entity as something like Student with its own properties (enrollment date, student id number, etc).
So outside of maybe changing the name of the entity, there's nothing wrong with that portion of the data model.
Other notes:

You need at least one alternate key on User, definitely one for Username, possibly one for Email.
You will need an alternate key on Deck, (user_id,name).
You will need an alternate key on Card, (name).