Here is some context for your information:
CountryCard.description is not defined in your GraphQL example above, if you request a field in DQL that does not exist for a node it will not return null values but instead have no response in the JSON.
CountryCard.country returns a type not a scalar. You have to then request fields for this type to see any response:
q(func: type(CountryCard)) {
uid
CountryCard.country {
uid
}
CountryCard.status
CountryCard.description
}
}
I am going to assume that the CountryCard.status is also missing for your nodes hence not seeing anything in the response other than uids.
Again please refer to the article I linked above in this reply. I believe that will do better to answer the question. Bottom line it is all about schema mapping. GraphQL schemas get mapped into a DQL schema with type dotted syntax, but that is not required for DQL schemas. They can have a predicate with names not having the type dotted notation.