Nested type definition in GraphQL:: Address, City, State, Country

I have the following address relationship.


Please clarify how do we define our type definition in GraphQL.

type Country {
countryId: ID!
name: String!
type State {
stateId: ID!
name: String!
belongs_to: Country @relation(direction: OUT, name: "BELONGS_TO")

type City {
cityId: ID!
name: String!
part_of: State @relation(direction: OUT, name: "PART_OF")

type Address {
address1: String!
address2: String
address3: String
location: Point
city: City @relation(name: "LIVES_IN", direction: OUT)
state: ?? <<<<<< Should i use Cypher with Merge?
country: ?? <<<<< Should I use Cyper with Merge?

Please clarify!