type Query {
    networkStatus: NetworkStatus!
    userStatus: UserStatus!
    uiState: UiState!
}

type Mutation {
    requestStarted: Int!
    requestCompleted: Int!
    setAsLoggedIn(username: String!, loginTime: String!): UserStatus!
    setAsLoggedOut: UserStatus!
    setUiLanguage(languageCode: LanguageCode): LanguageCode
}

type NetworkStatus {
    inFlightRequests: Int!
}

type UserStatus {
    username: String!
    isLoggedIn: Boolean!
    loginTime: String!
}

type UiState {
    language: LanguageCode!
}
